2013-08-16 46 views
0

当我想从文本文件读取数据并更新数据库时,常用的方法是什么。Rails更新数据库方法

首先,我检查记录是否存在使用一个独特的属性(假设'标题'),如果不行,我只是创建它。但是,如果它存在并且其中一个或多个属性被更新了,那么我会检查它的所有属性,并将旧的属性与新的属性进行比较?有没有更便宜的方法来做到这一点?

回答

0
  1. 为Uniq字段
  2. 你并不需要经过所有的属性,与record.changed任何回报检查添加索引[如果没有改变,它将返回空数组。如果没有,那么不要更新,否则更新你的记录。

更先进:插入到文本文件的另一个字段从记录updated_at值,如果该值改变下一次您更新数据库,然后更新您的记录。这肯定会更快:)

0

是的,你不必担心重复或更新,如果你确信你正在阅读的文件中的数据是最新的,那么只需声明该字段在数据库中是唯一的并插入所有新记录。对于重复数据库,DB会抛出一个异常,您可以通过删除该记录并再次插入新值来处理该异常。对于那些少数情况,插入和删除显然会比较便宜,然后检查所有列,并且还需要更多的努力。