当我想从文本文件中读取并更新我的数据库时,通常的方法是什么。
首先,我检查记录是否存在使用唯一属性(让我们说'标题'),如果不是,我只是创建它。但是如果它存在,并且它的一个或多个属性被更新,那么我会查看它的所有属性并将旧的属性与新属性进行比较?有没有更便宜的方法呢?
答案 0 :(得分:0)
record.changed
检查返回任何内容[如果没有更改,它将返回空数组]。如果没有,则不更新,否则更新您的记录。 更高级:在您的文本文件中插入另一个字段,其中包含记录中的updated_at
值,如果下次更新数据库时该值发生更改,则更新您的记录。肯定会更快:)
答案 1 :(得分:0)
是的,如果您确定要读取的文件中的数据是最新的,那么您不必担心重复或更新,只需在数据库中将该字段声明为唯一并插入所有新记录即可。对于重复项,DB将抛出一个异常,您可以通过删除该记录并再次插入新值来处理该异常。对于那些少数情况的插入和删除显然会比检查所有第一列和第一列更便宜,而且也需要更多的努力。