我正在爲用戶編寫一個快速應用程序來跟蹤他們的日常賬單(用於貨幣跟蹤目的)。我希望用戶能夠定義賬單可以適用的自己的類別。然而,我正在嘗試確定建模的最佳方式,並將類別驗證爲唯一。Mongo使用Rails/Mongoid設計賬單跟蹤應用程序的問題
我最初的想法是這樣的:
class User
include Mongoid::Document
embeds_many :bills
field :categories, :type => Array
end
class Bill
include Mongoid::Document
embeded_in :user, :inverse_of => :bills
field :category
index :category
end
所以用戶可以添加類別,就像琴絃,當他們添加了一項法案,他們會從他們的可用類別的法案進行選擇。
所以,一對夫婦的問題:
這是否看起來是正確的設計?我不認爲有必要定義一個實際的類別模型,因爲它實際上只是一個用於索引賬單的字符串,但我不確定是否還有其他好處來分開模型
如何validate_uniqueness_of:我的用戶模型中的類別。我不認爲它適用於這樣的數組項目,但我可能是錯的。我不希望用戶創建具有相同名稱的類別。我想這可能是嵌入在用戶中的單獨模型的優點,但它似乎更多的工作,而不是必要的。
有人能告訴我,我的最佳選擇這裏驗證用戶具有獨特的類別(但用戶可以有相同的類別,我顯然不關心的是,僅僅在單個用戶的範圍內是唯一)
這更是一種鍛鍊爲了好玩,我不寫一個企業應用程序或任何東西,我只是想用rails3學習mongo,並認爲像這樣的快速小應用程序將是一個有趣的練習 – brad 2010-10-12 01:11:08
@brad:我不是一個Rails的人,但我會將類別內聯存儲在用戶對象下的數組中。讓我更新我的答案。 – 2010-10-12 01:14:35
謝謝你的回答,我應該提到,我明顯知道如何用'indexOf'或'include?'手動執行此操作,只是不確定是否有更好的方式來做到這一點。我可能會選擇這個答案,因爲它在技術上回答我的問題,只會稍微等一下。 – brad 2010-10-12 12:08:06