2013-05-01 88 views
0

这是我第一次在这里发帖,所以如果我做错了事,请耐心等待。我把一部分作业挂在心上,希望有人能指出我正确的方向,或者至少让我知道我的想法是否正确。我使用mySQL,并且我是数据库的初学者。允许数据库中有多个电话号码?

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

我正想:

创建列customerNumber之新表CUSTOMERPHONE(FK,它是在客户主),PHONETYPE(与customerNumber之一起,这2个是主键)和电话。 CUSTOMER和CUSTOMERPHONE表将具有1:M的关系-1客户可以有多个电话号码。

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

我还没有为这部分任务编写任何代码,但运气好的话我会以某种方式破坏我的数据库并搞乱了作业的其他部分。如果有人能告诉我,如果我的思路是正确的,或者它存在缺陷,我会很感激。 (我不期望解决方案是作业,只是一些反馈。)

+0

如果您担心破坏事情,请在做任何事情之前进行备份。但是,是的,你的一般做法听起来像你正朝着正确的方向前进。 – Spudley 2013-05-01 09:50:42

回答

1

您的思路是正确的。您不需要将phoneType列添加到客户,因为该关系已在CUSTOMERPHONE表中定义,如上所述。

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

0

你thinkngis不错,但不同意这种一件麻烦:
In the CUSTOMER table, I was going to add a column phoneType. customer.phoneType would become a foreign key linking the two tables.
这将只是凌乱的设计。