我注意到我可能創建的關係問題。什麼是用Mongoid建模的理想方式?多個模型的問題
我開始使用照片模型。管理員可以上傳照片,並且他們會在網站上存在。
在以後的迭代中,相冊被添加到代碼庫中,以便可以在自己的頁面上組織照片的集合。
Album
has_many :photos, inverse_of: :album
Photo
belongs_to :album, inverse_of: :photo
玩完上面我注意到,照片可以永遠只屬於一個相冊。那一直沒問題。
現在出現了一個新問題。我想添加也是他們自己的模型的工作人員的照片。
我也有一些特殊的邏輯在我的照片模型來處理使用特定的上傳服務(filepicker)。
Staff
field :name, type: String
我該如何做到讓員工可以擁有自己的照片?我應該創建一個用於反規範化的新模型StaffPhoto嗎?我正在考慮將照片嵌入或者屬於職員,但是我不確定屬於專輯和職員是否有意義。現在唯一對我最有意義的是創建一個單獨的模型,並將上傳服務邏輯抽象爲一個模塊並將其包含到兩者中。但是我可能是錯的。最重要的部分是,照片的整體將存在於他們自己的作品中,或者作爲專輯的一部分,或者是作品的一部分(不止一張照片)。
關於如何建模的建議?
然後,一個嵌入式文件會更有意義多態關聯?嵌入式似乎在你所說的共享方式中更有意義。 – 2013-04-15 04:35:14
可能不是,但請參閱上述我的回答的修正 – Tilo 2013-04-15 17:39:55
謝謝。照片文件目前並不是很大。照片本身存儲在s3上,所以照片文檔只有照片本身的文件路徑屬性,所以我不認爲這個尺寸可能會變得太大。我最初認爲照片必須自己存在,但現在看起來它更像是其他模型所具有的功能,這使得我對是否使它嵌入或多態化感到困惑。 – 2013-04-16 00:14:13