2015-07-20 105 views
0

它目前我正在使用。在那我想減少關聯表。並達到相同的目標。一些人幫助我找到解決方案。如何關聯兩個沒有關聯表的表?

CREATE TABLE sys_student_t (
student_id MEDIUMINT NOT NULL AUTO_INCREMENT, 
student_name VARCHAR(255), 
PRIMARY KEY (student_id) 
); 

CREATE TABLE sys_classrooms_t (
    classroom_id MEDIUMINT NOT NULL AUTO_INCREMENT, 
    classroom_name VARCHAR(255), 
    PRIMARY KEY (classroom_id) 
); 

CREATE TABLE student_classroom_association_t (
    association_id MEDIUMINT NOT NULL AUTO_INCREMENT, 
    classroom_id MEDIUMINT NOT NULL, 
    student_id MEDIUMINT NOT NULL, 
    FOREIGN KEY (student_id) REFERENCES sys_student_t (student_id), 
    FOREIGN KEY (classroom_id) REFERENCES sys_classrooms_t (classroom_id), 
    PRIMARY KEY (association_id) 
); 

這裏是小提琴鏈接: - http://www.sqlfiddle.com/#!9/ada4fd/2 感謝

+0

不明白你想做什麼。 –

+0

@ juergen我想關聯兩個沒有關聯表的表。有沒有可用的選項 –

回答

1

A「許多一對多」的關係總是需要一個額外的表。您唯一能做的就是將關聯表的主鍵更改爲student_idclassroom_id

CREATE TABLE student_classroom_association_t (
    classroom_id MEDIUMINT NOT NULL, 
    student_id MEDIUMINT NOT NULL, 
    FOREIGN KEY (student_id) REFERENCES sys_student_t (student_id), 
    FOREIGN KEY (classroom_id) REFERENCES sys_classrooms_t (classroom_id), 
    PRIMARY KEY (student_id, classroom_id) 
); 
+0

我在哪裏可以學到更多關於it.please幫助我的東西。 –

+0

@MurugesanM我敢肯定這是一個好的開始:http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561 –