【问题标题】:MYSQL one-to-one relationshipMYSQL 一对一关系
【发布时间】:2016-11-22 18:36:27
【问题描述】:

我开始将整个数据库转换为规范化数据库。但是关于关系,我不明白一件事:

假设我有 2 张桌子:

Users
-userID (INT-PK)
-userName (varchar)
_favColor (int)

还有:

Colors
-colorID (INT-PK)
-colorName (varchar)

现在显然我必须建立一个关系,问题是: 我应该在颜色表和用户表之间建立关系,还是在用户表和颜色表之间建立关系?

我注意到,在创建关系时,关系并没有出现在两个表中,它只出现在其中一个表中,这让我很困惑。

【问题讨论】:

  • 我会将 favColor 设为 Colors 表的 FK。许多人可能有同样喜欢的颜色。通过将其设为外键,您可以确保颜色存在于颜色表中。
  • users 表将包含 color_id

标签: php mysql sql


【解决方案1】:

对于这个例子,我推荐一个 1:M 的关系,从颜色到用户。

这是因为 users 表需要 colors 表中的信息,所以你有 1:M 关系的原因是因为不同的用户可能有相同的喜欢的颜色。

【讨论】:

  • 那么如果我在颜色和用户之间建立关系,我就不能为不同的用户设置相同的颜色?
  • Users._favColor 应该是颜色表的外键。您将能够为任何用户设置任何颜色。
猜你喜欢
  • 2020-04-08
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
相关资源
最近更新 更多