2016-11-22 92 views
0

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

比方说,我有2个表:

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

和:

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

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

我注意到,当创建关系时,关系不会出现在两个表中,它只出现在其中的一个表中,这使我感到困惑。

+1

我想使颜色FK颜色表。许多人可以拥有同样喜欢的颜色。通过将其设置为外键,可以确保颜色表中存在颜色。 –

+0

用户表将包含color_id –

回答

1

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

这是因为用户表需要来自颜色表的信息,所以您有1:M关系的原因是因为不同的用户可能具有相同的喜爱颜色。

+0

所以,如果我创建颜色与用户之间的关系,我不能为不同的用户设置相同的颜色? – Coder

+0

Users._favColor应该是颜色表的外键。 您将可以为任何用户设置任何颜色。 –