我正在处理一个严重依赖外部API数据的应用程序。我需要将它存储在数据库中以执行一些搜索等。数据经常变化,并且必须同步"日常。因此,我正在寻找一种有效的方法来从API中提取新数据并使用新的,更新的和已删除的实体更新数据库。
但是,我只会遇到有关查询每个实体的差异以确定是进行更新还是插入的建议,这对我来说效率非常低。或截断所有数据,只是插入。但是,是否有任何现有的(更有效的)工具,技术或策略,或者它是要走的路?
提前致谢!
答案 0 :(得分:2)
您可以为每个项目生成哈希值,并在下次导入时对其进行比较。每行需要两件事:
例如,如果你收到这样的条目:
{
"id": 42,
"title": "something",
"description": "the description of this item"
}
您生成哈希sha1($row['title'].'|'.$row['description'])
,在下一次导入期间,您所要做的就是将旧哈希与新哈希进行比较。您必须遵循以下规则:
Ps:您可以使用日期替换哈希,如果外部API允许您访问每行的最后修改时间。