Mysql 在数据库建模中,它是一种什么样的关系?
我有一个包含人员的表,需要存储多个与一个人关联的电话号码。为此,我创建了第二个表,其中包含两个字段idperson和number。第一个字段是引用一个或多个人员的FK 这种方法有效吗? 此字段必须是主字段?Mysql 在数据库建模中,它是一种什么样的关系?,mysql,database,database-design,relational-database,Mysql,Database,Database Design,Relational Database,我有一个包含人员的表,需要存储多个与一个人关联的电话号码。为此,我创建了第二个表,其中包含两个字段idperson和number。第一个字段是引用一个或多个人员的FK 这种方法有效吗? 此字段必须是主字段? 这是一种什么样的关系?是的,这是一种有效的方法 Idpersona不能是主键,因为一个人可以有更多的手机号码 这是一种一对多的关系 它应该很好用。当然,这取决于应用程序的运行方式 处理数据。 ID应该是主键,IDpersona应该是外键。 关系:一对多。更多信息。 你的方法是有效的 虽然id
这是一种什么样的关系?是的,这是一种有效的方法 Idpersona不能是主键,因为一个人可以有更多的手机号码 这是一种一对多的关系 它应该很好用。当然,这取决于应用程序的运行方式 处理数据。 ID应该是主键,IDpersona应该是外键。 关系:一对多。更多信息。
你的方法是有效的 虽然idperson是第一个表的主键,但它本身不可能是第二个表的主键,因为您说过一个人可以关联多个电话号码。你可以制作一个idperson,number的复合键。或者,您可以引入代理密钥,例如idnumber 如果创建复合键,则第二个表表示EER术语中的多值属性,并且实体集之间没有关系
如果生成代理键,则第二个表表示具有非规范化关系的实体关系。该关系由一对实体键idnumber、idperson表示。由于PK约束将仅在其中一列上,它将表示一对多关系。如果我使用idpersona primary,我不能在此字段中重复id,但必须存储重复的值,但我认为此字段必须编制索引,不是吗?@DavidUntama idpersona仅在第一个表中是primary,在第二个表中,它是一个外键