在数据库建模中,它是什么样的关系?

时间:2017-06-15 16:28:17

标签: mysql database database-design relational-database

我有一个人和一个人的桌子需要存储多个与一个人相关联的号码电话来执行此操作我创建了第二个表,其中包含2个字段idperson和number,第一个字段是引用一个或多个人的FK。 / p>

enter image description here

这种方法有效吗? 这个字段(idperson)必须是主要的? 它有什么关系?

3 个答案:

答案 0 :(得分:1)

您的方法有效。

虽然idperson是第一个表的PK,但它本身不能是第二个表的PK,因为您说多个电话号码可以与一个人关联。您可以创建idperson, number的复合键。或者,您可以引入代理键,例如idnumber

如果你制作一个复合键,你的第二个表代表EER术语中的多值属性,并且没有任何关系(实体集之间)。

如果您创建代理键,则第二个表表示具有非规范化关系的实体关系。该关系由实体密钥对idnumber, idperson表示。由于PK约束只在一个列上,因此它代表一对多的关系。

答案 1 :(得分:0)

是的,这是一种有效的方法。

Idpersona不能成为主键,因为一个人可以拥有更多的电话号码。

这是一对多的关系。

答案 2 :(得分:0)

  1. 它应该可以正常工作。当然,这取决于您的应用程序的进展情况 处理数据。
  2. ID应为主键,IDpersona外键。
  3. 关系:一对多。有关它的更多信息here