我有一个人和一个人的桌子需要存储多个与一个人相关联的号码电话来执行此操作我创建了第二个表,其中包含2个字段idperson和number,第一个字段是引用一个或多个人的FK。 / p>
这种方法有效吗? 这个字段(idperson)必须是主要的? 它有什么关系?
答案 0 :(得分:1)
您的方法有效。
虽然idperson
是第一个表的PK,但它本身不能是第二个表的PK,因为您说多个电话号码可以与一个人关联。您可以创建idperson, number
的复合键。或者,您可以引入代理键,例如idnumber
。
如果你制作一个复合键,你的第二个表代表EER术语中的多值属性,并且没有任何关系(实体集之间)。
如果您创建代理键,则第二个表表示具有非规范化关系的实体关系。该关系由实体密钥对idnumber, idperson
表示。由于PK约束只在一个列上,因此它代表一对多的关系。
答案 1 :(得分:0)
是的,这是一种有效的方法。
Idpersona不能成为主键,因为一个人可以拥有更多的电话号码。
这是一对多的关系。
答案 2 :(得分:0)