-2
我想使3實體,類,主題和考試,什麼是最好的辦法做到這一點,什麼應該是我的主要表和主鍵,我將作爲外國ky在其他兩個表中如何使用主鍵概念關聯3個表
我想使3實體,類,主題和考試,什麼是最好的辦法做到這一點,什麼應該是我的主要表和主鍵,我將作爲外國ky在其他兩個表中如何使用主鍵概念關聯3個表
問題是方式通用的。我認爲這是從學校的角度出發的。鑑於:
你必須
將產生此SQL存根:
CREATE TABLE Subject (
id INTEGER NOT NULL,
name VARCHAR(50),
PRIMARY KEY(id)
);
CREATE TABLE Class (
id INTEGER NOT NULL,
-- some other defining columns here
id_subject INTEGER,
PRIMARY KEY(id),
FOREIGN KEY(id_subject) REFERENCES Subject(id)
);
你需要參加考試一樣。作爲一個方面說明,您可能希望將外鍵放在類爲空的位置,因爲可能沒有某個類的主題(例如空閒時間?缺少老師?),但是您肯定會希望有一個非空約束考試中的外鍵。
因爲這看起來像一個任務,我不會進入詳細內容...
編輯:在這種情況下你的「類」實體,意味着你將涉及類和對象有一個額外的表學年,因爲這個關係變爲N×M:
CREATE TABLE Subject_Class (
id_class INTEGER NOT NULL,
id_subject INTEGER NOT NULL,
PRIMARY KEY(id_class, id_subject),
FOREIGN KEY (id_class) REFERENCES Class(id),
FOREIGN KEY (id_subject) REFERENCES Subject(id)
);
並且您將從Class表中刪除外鍵。
謝謝,但我的問題是假設爲一個班級,把它作爲第8類,他們有5個科目英語,數學,生命科學,物理科學,歷史。那麼我怎麼能與id相關?第5課的意思是我必須逐個添加每個主題? –
在這種情況下,您會將Class和Subject與一個附加表關聯起來,因爲此關係變爲N x M:編輯我的答案。 –