2012-09-10 131 views
1

我有一個ActiveRecord模型,要求有一個輔助ID。我可以想出幾種方法來實現它,但是最好的方法是什麼?是否可以在遷移中指定自動增量,還是應該在過濾器中完成?二級ID自動增量

什麼是最佳實踐?

謝謝。

+0

如何輔助自動遞增列從正常'id'有什麼不同?你能得出它的價值嗎? –

+1

如果數據庫需要遷移並且ActiveRecord標識已更改,則輔助標識將用作「一致標識」。 – alexs333

回答

0

這裏有一個解決方案

before_validation :add_secondary_id, :on => :create 

def add_secondary_id 
    self.secondary_id = self.class.select(:secondary_id).order('secondary_id DESC').first.secondary_id.to_i + 1 
end 
+2

您剛剛添加了比賽條件。 –

+0

我能想到的唯一其他選項就是要使用uuids,在數據庫表中添加第二個自動增量字段,或者使字段在數據庫中唯一,這至少可以防止2條記錄具有相同的價值。 – weexpectedTHIS