【问题标题】:Best way to check deleted item when doing data synchronization?进行数据同步时检查已删除项目的最佳方法?
【发布时间】:2017-09-03 05:27:24
【问题描述】:

我有一个系统定期调用 API 以获取活动的参与者列表,并将参与者存储/同步到我的本地 RDB 中。

每条记录都有一个时间戳字段,我可以使用它来检查更新/新记录。

但是,我真的没有一个优雅的解决方案来检查已删除记录。将每个记录 ID 与我的本地数据库进行匹配是查找哪些项目被删除的唯一可行方法吗?

【问题讨论】:

  • API 如何指示“已删除”项? API 是否总是返回整个列表?
  • 提供一个简短的本地和 API 名称和时间戳列表,并解释每个应该发生的情况。

标签: mysql database postgresql database-design synchronization


【解决方案1】:

如果 API 返回整个列表,则以这种方式开始:

  1. 将列表放入另一个表中,例如List
  2. 通过FROM List LEFT JOIN Local USING(name) WHERE Local.name IS NULL 查看谁是新用户。 (尚不清楚时间戳是如何影响的。)
  3. 要查看谁被删除,交换表名。

【讨论】:

  • 您好,感谢您的想法,基本上每个用户都会有一个状态字段指示它是否被删除。但是,我认为我不能使用 join 来检查删除,因为该表可以有其他用户进行其他事件。
  • JOIN .. ON user_idWHERE should-be-deleted
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
  • 2010-11-10
  • 2018-08-12
  • 1970-01-01
相关资源
最近更新 更多