簡體   English   中英

使用SQL m:n關系進行查詢

[英]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)
);

是的,你可以通過明確地自己建模“關系”表來做到這一點(就像你的其他實體一樣)。

這里有一些關於這個問題的帖子。

使用關聯表中的其他字段首先創建代碼,多對多創建代碼

實體框架CodeFirst與其他信息的多對多關系

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM