2015-07-20 2 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

А «многие-ко-многим» отношения всегда требуют дополнительной таблицы. Единственное, что вы можете сделать, это изменить первичный ключ таблицы ассоциаций на пару student_id и classroom_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

, где я могу узнать больше о ней. Помогите мне. –

+0

@MurugesanM Я уверен, что это хороший старт: http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561 –

Смежные вопросы