我正在尝试建立一个合适的数据库设计,但我被卡住了 这就是我想要保存的内容。
每个用户都可以从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
在这里,用户可以为列表选择任何名称,而不会干扰其他用户的名字。
这是存储数据的好方法吗?
答案 0 :(得分:1)
从理论数据库设计视图来看,这是正确的方法。 例如,实体关系模型以这种方式描述它。您可以在这些关系中拥有实体和属性之间的关系。如果将这些映射到关系模型(数据库表),则会获得包含对entites和所有其他信息的引用的关系表。 这就是理论可以告诉我们的内容:)