2012-09-01 82 views
0
步驟序列

我試圖創建一個TourSteps在Ruby和Mongoid序列:如何管理的Mongoid和紅寶石

class Tour 
    include Mongoid::Document 
    field :name, type: String 
    embeds_many :steps 
end 

class Step 
    include Mongoid::Document 
    field :name, type: String 
    embedded_in :tour 
end 

什麼是最好的方式來管理的步驟的有序序列?(考慮:插入,刪除,走動步驟)

我的第一反應就是做一個單向鏈表風格,存儲下一個步驟:

class Step 
    include Mongoid::Document 
    field :name, type: String 

    embeds_one :step, store_as: "next_step" 
    embedded_in :tour 
end 

興趣,如果任何人有更好的設計建議:)

謝謝!

+1

如果您想更改步驟順序,使用單向關係會導致難以維護。爲什麼不保持embeds_many +一個順序字段? – apneadiving

+0

感謝您的及時迴應@apneadiving :) –

+0

它回答你的問題嗎? – apneadiving

回答

1

如果您想更改步驟順序,使用單向關係會導致難以維護。

我推薦使用embeds_many + step order field +自定義驗證器。

+0

自定義驗證程序應該做什麼? –

+1

我會檢查所有條目有不同的順序,因爲這些是嵌入式模型,它不會花費太多 – apneadiving