在数据库中允许多个电话号码?

时间:2013-05-01 05:35:07

标签: mysql mysql-workbench

这是我第一次在这里发帖,所以如果我做错了,请耐心等待。我挂了一部分家庭作业,希望有人能指出我正确的方向,或者至少让我知道我的想法是否正确。我正在使用mySQL,而且我是数据库的初学者。

问题是“数据库需要支持每个客户的多个(任意数量)电话号码。目前只允许一个号码(Customer.Phone)。每个电话号码也需要一个类型,必须是:陆线( L),移动(M)或工作(W)。不需要其他类型。当前50个字符的限制就足够了。假设表中所有当前的电话号码都是类型= L.“

我打算:

创建一个新表CUSTOMERPHONE,其中包含customerNumber(FK,它是CUSTOMER中的主要)列,phoneType(与customerNumber一起,这两个将是主键)和phone。 CUSTOMER和CUSTOMERPHONE表格具有1:M关系 - 1个客户可以拥有多个电话号码。

在CUSTOMER表中,我打算添加一个列phoneType。 customer.phoneType将成为链接两个表的外键。

我还没有为这部分作业编写任何代码,幸运的是,我会以某种方式破坏我的数据库并弄乱其他3部分的作业。如果有人能告诉我,我的思路是否正确,或者它有缺陷,我会很感激。 (我不希望解决方案是它的功课,只是一些反馈。)

2 个答案:

答案 0 :(得分:1)

你的思路正确。您无需将phoneType列添加到客户,因为已按照您的描述在CUSTOMERPHONE表中定义了该关系。

还要记住,这真的不是一对多的关系,它更像是一对一的关系,因为它取决于你允许的不同类型。

答案 1 :(得分:0)

你的思想很好,但不要为这件事烦恼:
In the CUSTOMER table, I was going to add a column phoneType. customer.phoneType would become a foreign key linking the two tables.
这只会使设计变得混乱。