0

这是我第一次在这里发帖,所以如果我做错了什么,请多多包涵。我忙于家庭作业的一部分,希望有人能指出我正确的方向,或者至少让我知道我对我需要做什么的想法是否正确。我正在使用 mySQL,我是数据库的初学者。

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

我本来打算:

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

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

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

4

2 回答 2

1

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

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

于 2013-05-01T05:39:54.143 回答
0

你的想法很好,但不要理会这一件:
In the CUSTOMER table, I was going to add a column phoneType. customer.phoneType would become a foreign key linking the two tables.
它只会使设计混乱。

于 2013-05-01T05:59:18.537 回答