2011-03-05 44 views
0

我試圖建立一個適當的數據庫設計,但我卡住了。
這就是我想要保存的內容。結構電影列表

每個用戶都可以從imdb中定義一個投票歷史列表,看起來像this

兩個用戶可以定義相同的列表。

首先,我希望能夠將每個列表保存爲imdb_vote_history_list - 列表。

class ImdbVoteHistoryList < ActiveRecord::Base 
    has_and_belongs_to_many :vote_history_list 
    has_and_belongs_to_many :movies 
    # Fields 
    # id (Integer) - defined by the user 
end 

每個列表應該是唯一的,並且由它的ID(在鏈接中給出)定義。 每個列表都有許多電影,屬於上面的代碼。

每個用戶應該能夠爲每個列表選擇一個名稱。 所以不是說

每個imdb_vote_history_list belongs_to的用戶

我創建一個名爲vote_history_list新的關係。

class VoteHistoryList < ActiveRecord::Base 
    has_and_belongs_to_many :imdb_vote_history_lists 
    belongs_to :user 

    # Fields 
    # name (String) 
end 

在這裏,用戶可以選擇任何名稱的列表,不使用其他用戶名的干擾。

這是存儲數據的好方法嗎?

回答

1

從理論數據庫設計角度來看,這是正確的方法。例如,實體關係模型以這種方式描述它。您可以在這些關係中的實體和屬性之間建立關係。如果將這些映射到關係模型(數據庫表),您將得到一個關係表,其中包含對兩個實體的引用以及所有其他信息。 這是什麼理論可以告訴我們關於它:)

+0

這就解釋了一切! – Oleander 2011-07-06 08:06:31