gpt4 book ai didi

MySQL创建一对多表,下面的最佳选择是什么?

转载 作者:行者123 更新时间:2023-11-29 04:14:57 24 4
gpt4 key购买 nike

我有以下数据并使用 mysql。 Person_name 是唯一的,TelephoneNumbers 每个人都是唯一的。

Person_name1=TelephoneNumber1, TelephoneNumber2, TelephoneNumber3...
Person_name2=TelephoneNumber4, TelephoneNumber5, TelephoneNumber6...

方案一,创建1:多主子表。

CREATE TABLE Person (
personName varchar(50) NOT NULL,
id int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
UNIQUE KEY personName (personName)
);

CREATE TABLE Telephone (
telephoneNumber int,
mappingId int,
PRIMARY KEY (telephoneNumber),
foreign key(mappingId) references Person(id)
);

选项 2. 创建一个表,将 personName、telephoneNumber 作为复合键。

CREATE TABLE
Person_Telephone (
personName varchar(50) NOT NULL,
telephoneNumber int NOT NULL,
PRIMARY KEY(personName, telephoneNumber)
);

选项 1 是否过于复杂地为两个字段创建两个表?选项 2 看起来很完美,如果选择选项 2 而不是选项 1 会不会有任何问题?

最佳答案

选项 2 为您提供重复的人员,您必须在每个查询中控制这些人员。

最好的是将实体分开,这是一个经典的 1-N 关系

关于MySQL创建一对多表,下面的最佳选择是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55253185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com