MySQL One Column,两个外键选项

时间:2014-04-22 11:14:08

标签: mysql

我有一个数据库设置。它有两个表,一个包含Events Event_ID,另一个包含Venues Venue_ID。这两个表的结构略有不同(事件包含datevenue_name,场地不包含)我对事件和场地都有描述,它们共享相同的结构。是否可以有一个可以引用descriptionsevent_id的{​​{1}}表,或者最好保持这些分开?或者还有第三种选择吗?

场地+活动不能有多种描述(参考下面的评论)

1 个答案:

答案 0 :(得分:0)

我不确定您的实体正在尝试做什么,但对我(母语为英语的人),"事件"与"场地"非常不同。一个"事件"是在某个特定时间点发生的事情。 "与会者"可以报​​名参加"活动"。 A"场地"是一个特别的地方。这些是非常不同的实体。

他们之间有关系。正如Alvaro在评论中指出的那样,venue_name不是event的适当属性。 venue_id是适当的属性,在表之间创建链接。

您的问题的答案是您可以将描述放在单个表中,但在单个表中混合不同实体的描述通常没有意义(在大多数情况下)。通常,您只需将description列添加到您想要该属性的表中。

在某些情况下,可能需要单个此类表。如果您要创建一个多语言数据库应用程序并且description可以向用户显示,那么您可能希望将所有这些字符串存储在一个表中以便于翻译。