2011-03-05 66 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