我有一個ActiveRecord模型,要求有一個輔助ID。我可以想出幾種方法來實現它,但是最好的方法是什麼?是否可以在遷移中指定自動增量,還是應該在過濾器中完成?二級ID自動增量
什麼是最佳實踐?
謝謝。
我有一個ActiveRecord模型,要求有一個輔助ID。我可以想出幾種方法來實現它,但是最好的方法是什麼?是否可以在遷移中指定自動增量,還是應該在過濾器中完成?二級ID自動增量
什麼是最佳實踐?
謝謝。
這裏有一個解決方案
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
您剛剛添加了比賽條件。 –
我能想到的唯一其他選項就是要使用uuids,在數據庫表中添加第二個自動增量字段,或者使字段在數據庫中唯一,這至少可以防止2條記錄具有相同的價值。 – weexpectedTHIS
如何輔助自動遞增列從正常'id'有什麼不同?你能得出它的價值嗎? –
如果數據庫需要遷移並且ActiveRecord標識已更改,則輔助標識將用作「一致標識」。 – alexs333