Datamapper,Ruby:维护ID一致性?

时间:2013-06-18 09:30:50

标签: ruby datamapper

我正在使用DataMapper编写一个简单的应用程序。在我的数据库中保持一致的ID(串行属性)(这可能会自由改变)是至关重要的,所以我编写了这个简单的脚本,遍历每个记录并修复ID以使它们保持一致(例如1,2,3 ...)。

问题是,每次添加新记录时,都会添加一个新ID,这会破坏一致性 - 就好像以前的记录没有修复一样。

如何防止此行为?或者更确切地说,是否有更简单的方法来维持ID的逻辑进展?我有一种明显的感觉,我不应该手动改变ID。

1 个答案:

答案 0 :(得分:2)

datamapper通常会创建顺序ID 但是这个序列可能与你的“逻辑顺序”不同。

示例:

  • 您以另一个顺序创建条形对象,然后您希望它们被订购
  • 您创建临时条带对象(原型)并再次删除它们
  • ..

我认为您不应该尝试强制datamapper使用您的ID。相反,我推荐一个额外的字段,如“nekkoru_number”,您可以根据自己的想法计算出来。在您的情况下,使用唯一名称而不是数字也可能是一个好主意。

还要考虑像

这样的用例
  • 稍后插入对象
  • 重新排序对象