[英]query with SQL m:n relationships
關於sql中的多對多關系,我有一個簡單的問題。 所以理論上我理解如果ER模型中的2個實體之間有M:N關系,我們必須將它分成2 1:N關系,並包含一個交集/查找表,該表具有來自兩者的復合主鍵。父表。 但是,我的問題是,除了復合主鍵之外,是否可以在復合表中添加任何其他列,這些列不在2個父表中的任何一個中? (除了intersectionTableId,table1ID,table2ID)一個4rth列,它是全新的,不在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)
);
是的,你可以通過明確地自己建模“關系”表來做到這一點(就像你的其他實體一樣)。
這里有一些關於這個問題的帖子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.