我是建模和创建这些关系数据库的新手,所以在阅读我正在尝试做的事情之后,任何推荐的阅读都会很棒。
我正在为联系人创建一个表。目前有这些表: 供应商, 主要联系人
主要联系人中的列如下所示:
table contacts: id, name, vendor, phone
现在有时,一个联系人有多个电话(手机、办公室、家庭、Skype 等),所以我想制作另一个表“电话”,其中包含以下列:ID、姓名和电话。 此外,某些联系人可能共享相同的电话号码。
这将是一个多对多的关系,对吗?许多联系人共享电话号码,这些号码都为相同的供应商或不同的供应商工作。 W
这样做(单独的电话号码表)而不是在联系人中包含 Ph1、Ph2、Ph3 列会更好吗?如果有更多的数字怎么办?如果只有一个电话号码怎么办?这会浪费空间。我应该在 phones 表中只包含 ID 和 phone_number,还是同时包含 ID、Phone_Number 和 Phone_Name?
最佳答案
这取决于您的项目,但是当它是私有(private)信息时,多对多的想法没有意义。想一想当有人编辑电话号码时会发生什么。现在所有使用该用户的其他用户都已更改信息,即使他们不想也不知道。
尝试这样的事情:
table phones: id, contact_id, phone
table contacts id, user_id, firstname, lastname etc.
关于mysql - 数据建模 - 电话号码的单独表格?多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118009/