2013-06-18 56 views
0

我正在寫一個簡單的應用程序使用DataMapper。在我的數據庫中維護一致的ID(串行屬性)(這可能會自由更改)是非常重要的,所以我編寫了這個簡單的腳本來遍歷每條記錄並修復ID,以便它們保持一致(例如1,2,3 ...)。Datamapper,Ruby:維護ID一致性?

問題是,每當我添加一條新記錄時,它都會添加一個破壞一致性的新ID--就好像以前的記錄沒有修復一樣。

如何防止此行爲?或者說,是否有更簡單的方法來維護ID的邏輯進程?我有一種明顯的感覺,我不應該用手改變身份證。

+0

只是好奇:你爲什麼需要序列ID?這將是一個痛苦的屁股。這真的值得嗎? – Shoe

+0

@傑弗裏是的。基本上,我試圖組織一個webcomic,當你從6條走到13條時,它看起來很奇怪。 – Nekkoru

+0

你又使用了哪個數據庫? – Shoe

回答

2

datamapper通常創建順序ID 但這個順序可以不同於你的「邏輯順序」。

例子:

  • 創建了與另一個序列中的條形物體,那麼你希望他們訂購
  • 創建臨時條的對象(原型),並再次將其刪除
  • ...

我認爲你不應該試圖強制datamapper使用你的ID然後。相反,我建議一個額外的領域,如「nekkoru_number」,你可以根據自己的想法來計算。在你的情況下,使用一個唯一的名稱而不是一個數字也可能是一個好主意。

也在想使用情況下,像

  • 插入對象重新排序的對象