gpt4 book ai didi

mysql - mysql建表

转载 作者:行者123 更新时间:2023-11-30 21:25:34 24 4
gpt4 key购买 nike

我有一个学校计时竞赛项目,我一直致力于解决表格构建问题。请看以下示例。

这可能会发生 ->


比赛 |参赛选手

游泳 |约翰·史密斯

驾驶 |约翰·史密斯


你可以看到同一个名字出现了两次,但不是在同一个比赛中。

这种情况是错误的,那么如何防止以下情况->


比赛 |参赛选手

游泳 |约翰·史密斯

游泳 |约翰·史密斯


我想避免在同一个比赛中出现重复。

最佳答案

如果你不能改变表的表结构,你可以在比赛和参赛者的组合上添加唯一约束:

ALTER TABLE competitions
ADD CONSTRAINT competitions_unq UNIQUE (competition, contestant);

但这确实不是一个很好的解决方案。一种更惯用的方法是为比赛和参赛者准备单独的表格,然后有一个 m:n 表格加入他们:

CREATE TABLE competitions (
id INT PRIMARY KEY,
name VARCHAR(100),
-- other columns
);

CREATE TABLE contestants (
id INT PRIMARY KEY,
first_name VARCHAR(100),
last_name VARCHAR(100),
-- other columns
);

CREATE TABLE competition_contestants (
competition_id INT NOT NULL,
contestant_id INT NOT NULL,
PRIMARY KEY (competition_id, contestant_id),
FOREIGN KEY competition_id REFERENCES competition(id),
FOREIGN KEY contestant_id REFERENCES contestant(id)
);

关于mysql - mysql建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59252826/

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