【发布时间】:2014-10-03 13:21:53
【问题描述】:
考虑以下两个表:
Messages
MessageId (PK)
Text
Languages
LanguageId (PK)
Language
Messages 和 Languages 表之间存在多对多的关系(即每个 Message 可以有多个 Languages,每个 Language 可以由多个 Messages 共享)。为此,我添加了以下联结表:
Messages_Languages
MessageId (PK)(FK)
LanguageId (PK)(FK)
但是,这似乎有些不必要,因为语言从根本上是消息的属性。使用上面的 Messages_Languages 表而不只是将 LanguageId 作为外键添加到 Messages 表有什么好处? (见下文)
Messages
MessageId (PK)
LanguageId (PK)(FK)
Text
似乎少一张桌子也能完成同样的事情。
【问题讨论】:
标签: sql sql-server many-to-many data-modeling