gpt4 book ai didi

sql - 使用 SQL 查询 m :n relationships

转载 作者:搜寻专家 更新时间:2023-10-30 22:08:43 24 4
gpt4 key购买 nike

我有一个关于 sql 中多对多关系的快速问题。所以从理论上讲,我理解如果 ER 模型中的 2 个实体之间存在 M:N 关系,我们必须将其拆分为 2 个 1:N 关系,并包含一个交集/查找表,该表具有来自两个实体的复合主键父表。但是,我的问题是,除了复合主键之外,复合表中是否可以添加其他任何不在 2 个父表中的额外列? (除了 intersectionTableId、table1ID、table2ID)第 4r 列是全新的,不在 2 个父表中的任何一个中?请告诉我。

最佳答案

一句话——是的。通常的做法是表示两个实体之间关系的属性。

例如,假设您有一个数据库,其中存储了人们和他们喜欢的运动队的详细信息:

CREATE TABLE person (
id INT PRIMARY KEY,
first_name VARCHAR(10),
last_name VARCHAR(10)
);

CREATE TABLE team (
id INT PRIMARY KEY,
name VARCHAR(10)
);

一个人可能喜欢不止一个团队,这就是你经典的M:N关系表。但是,您还可以向该实体添加一些详细信息,例如一个人何时开始喜欢某个团队:

CREATE TABLE fandom (
person_id INT NOT NULL REFERENCES person(id),
team_id INT NOT NULL REFERENCES team(id),
fandom_started DATE,
PRIMARY KEY (person_id, team_id)
);

关于sql - 使用 SQL 查询 m :n relationships,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40094242/

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