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