美文网首页数字藏品开发
同步合约数据到数据库经典案例3

同步合约数据到数据库经典案例3

作者: 区块链董叔 | 来源:发表于2023-04-13 10:44 被阅读0次

上一篇我们通过分析 activity 表,并建立 meta_view_create_latest 视图的方式,解决了 market 表中没有上架时间的问题。

但对于 market 表,我们似乎忘记了一些事情。是的,每一次从合约获取数据进行保存,虽然保证了商品列表的最新、最全,但我们没有把“已取消”和“已成交”的商品信息从 market 表中删除掉。这显然是不合理的。

下面我们来解决这个问题。

1. 找出“已取消”和“已成交”的时间点

为了找出最新的“已取消”时间和“已成交”时间,我们按上文介绍的方法分别创建2个新视图:meta_view_cancel_latest、meta_view_confirm_latest

2. 对比时间点,找出应该从market表删除的数据

比较取消时间和创建时间,如果取消时间比创建时间靠后,则说明这条商品信息应该从market表中删除。以下语句用于创建新视图“meta_view_must_del_cancel”

比较已经交时间和创建时间,如果已成交的时间比创建时间靠后,则说明这条商品信息应该从market表中删除。以下语句用于创建新视图“meta_view_must_del_confirm”

上面我们采用了两种方法进行筛选数据,感兴趣的同学可以测试比较一下两种方式的差异

3. 数据量检测

接下来我们试着连表查询,看看因为“取消上架”导致应该删除的商品信息在market表中的数目对比。

我们发现,出现了很多的NULL的数据。即应该删除的信息比market表中要多。这说明,我们从合约获取上架商品列表数据时,已经有部分商品被已取消了。我们同步数据的程序运行时间晚于合约实际运行时间。此为正常现象,只需要在删除的时候将该数据过滤掉即可。

同样,因为“已成交”导致market表中多余的数据的查询方法如下:

4. 数据删除

最后,我们要将因“取消上架”和“已成交”导致的不应该在market列表中的数据清理掉。

相关文章

  • 1.PDMan使用及自动生成代码

    1.打开PDMan开始->创建模块->创建数据库2.同步数据库到数据库模型模板->同步配置->保存版本 3.同步数...

  • Qt数据库应用15-通用数据库同步

    一、前言 数据库同步的主要功能是将本地的数据库记录同步到远程的数据库,其中数据库类型不限,比如本地是sqlite数...

  • Qt数据库应用16-通用数据库采集

    一、前言 数据库采集对应的就是上一篇文章的数据库同步,数据库同步到云端数据库以后,app、网页、小程序啥的要数据的...

  • 数据库设计连接

    数据库建模工具 MySQL Workbench 同步到数据库 同步到远程服务器如果发生如下错误 这就需要在远程服务...

  • 构建高并发高可用的电商平台架构实践(二)

    8) 数据同步 在交易系统中,通常需要进行异构数据源的同步,通常有数据文件到关系型数据库,数据文件到分布式数据库,...

  • Opencart 2.X 升级 3.X

    先下载3.x版本文件进行安装,然后同步数据到新的数据库 注意下面的表是需要变动的,同步时可以先不同步下面的表 完成...

  • Python读取Excel文件

    需求:将Excel的数据同步到数据库, 由于sql 比较渣渣,于是打算用Python读取后在update到数据库,...

  • 【MySQL】MySQL5.6数据库基于binlog主从(Mas

    主从数据库同步原理 主从数据库同步工作原理(流程):当主库的数据发生修改时,数据更改的记录将写入到主库的二进制文件...

  • odoo之数据同步

    将其他数据库上的数据同步到odoo数据库内,生成报表,随时更新数据,并对更新的数据进行对比分析,分析详情: 精确到...

  • 同步云数据库MySQL到自建数据库

    摘要:同步云数据库MySQL到自建数据库 备份恢复到本地的相关说明,请参考https://help.aliyun....

网友评论

    本文标题:同步合约数据到数据库经典案例3

    本文链接:https://www.haomeiwen.com/subject/mcyaddtx.html