我刚开始建立关系数据库。
我试图在mysql中创建两个表,一个用户表和一个公司表。两者都应该能够有多个与之相关联的电话号码,所以我创建了一个电话表,并希望从公司到电话,从用户到电话都有一对多的关系。
在我试图做的事情中,似乎只有两个选择:
在电话中保留两个外键,一个引用公司,一个引用用户。它们都默认为空,并且每个都是空的,当在phone中创建一个新行时,我只会填充我需要的行。
有两张不同的桌子,用户电话和公司电话。
在我看来,这两种选择都不是最佳的。选项1看起来很老套,容易出现冗余问题。选择二似乎相当重复和不必要。我倾向于认为选项2是做事情的“官方”方式(开始怀疑这是否是我听到mysql负面消息的原因)。
有人吗?谢谢,
-马特

最佳答案

我想推荐以下设计(很像你的):
首先,我们有三张桌子

USER -- UserId, other fields
COMPANY -- CompanyId, other fields
PHONE -- PhoneId, PhoneNumber

然后有两个表来存储关系
COMPANY_PHONE -- CompanyId, PhoneId
USER_PHONE -- UserId, PhoneId

07-24 09:18