【发布时间】:2014-12-21 21:37:08
【问题描述】:
我正处于设计数据库的最后阶段,遇到以下设计问题。
我有两个表,A 和 B。这些表本质上是一对一的关系 - 如果没有相应的 B 行,A 行就没有意义,反之亦然。
我最初的想法是创建相互的外键,但是如果我删除一个外键会产生问题(鸡和蛋的问题)吗?我正在使用 mysql。
我听到人们说“如果他们处于一对一关系中,只需将他们放在一张桌子上”。但是,我有一种感觉(这只是一种感觉)它们应该位于单独的表中,因为它们是不同的实体。
我应该把它们放在一张桌子上吗?循环外键有问题吗?
谢谢
【问题讨论】:
-
多个 A 是否可以与同一个 B 关联(反之亦然),或者它们之间是否存在排他性配对?
-
这些是什么东西,真的吗?
-
@Mureinik - 是的,几个 B 可以与一个 A 相关联
-
@MikeSherrill'CatRecall' - 我正在设计一个橄榄球数据库。当您获得“尝试”时,您可以“转换”它并获得更多积分。 A = 尝试和 B= 转换。将这些放在同一张桌子上感觉不对(尤其是尝试得分者和转换尝试的人可能是不同的玩家)。
-
你说“这些表本质上是一对一的关系”,“几个B可以与一个A关联”。这两种说法之一必然是错误的。哪一个?
标签: mysql database-design