Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在数据库建模中,它是一种什么样的关系?_Mysql_Database_Database Design_Relational Database - Fatal编程技术网

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

Mysql 在数据库建模中,它是一种什么样的关系?,mysql,database,database-design,relational-database,Mysql,Database,Database Design,Relational Database,我有一个包含人员的表,需要存储多个与一个人关联的电话号码。为此,我创建了第二个表,其中包含两个字段idperson和number。第一个字段是引用一个或多个人员的FK 这种方法有效吗? 此字段必须是主字段? 这是一种什么样的关系?是的,这是一种有效的方法 Idpersona不能是主键,因为一个人可以有更多的手机号码 这是一种一对多的关系 它应该很好用。当然,这取决于应用程序的运行方式 处理数据。 ID应该是主键,IDpersona应该是外键。 关系:一对多。更多信息。 你的方法是有效的 虽然id

我有一个包含人员的表,需要存储多个与一个人关联的电话号码。为此,我创建了第二个表,其中包含两个字段idperson和number。第一个字段是引用一个或多个人员的FK

这种方法有效吗? 此字段必须是主字段?
这是一种什么样的关系?

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

Idpersona不能是主键,因为一个人可以有更多的手机号码

这是一种一对多的关系

它应该很好用。当然,这取决于应用程序的运行方式 处理数据。 ID应该是主键,IDpersona应该是外键。 关系:一对多。更多信息。
你的方法是有效的

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

如果创建复合键,则第二个表表示EER术语中的多值属性,并且实体集之间没有关系


如果生成代理键,则第二个表表示具有非规范化关系的实体关系。该关系由一对实体键idnumber、idperson表示。由于PK约束将仅在其中一列上,它将表示一对多关系。

如果我使用idpersona primary,我不能在此字段中重复id,但必须存储重复的值,但我认为此字段必须编制索引,不是吗?@DavidUntama idpersona仅在第一个表中是primary,在第二个表中,它是一个外键