J'ai 2 tables avec plusieurs à plusieurs:beaucoup à table n - 1 champ séparé clé primaire ou 2 existait fileds clé primaire (exemple à l'intérieur)
student
(
id int(11) NOT NULL,
name varchar(255),
primary key(id)
);
teacher
(
id int(11) NOT NULL,
name varchar(255),
primary key(id)
);
et je dois faire 3 Table - student_has_teacher
ajouter l'option id clé primaire
séparée student_has_teacher ( id int (11) NOT NULL, enseignant_id int (11), student_id int (11) clé primaire (id) );
option de faire 2 champs de clé primaire
student_has_teacher ( teacher_id int (11), student_id int (11), clé primaire (teacher_id, student_id), références clés étrangères (de teacher_id) enseignant (id), clé étrangère (student_id) références étudiant (id) );
Quelle est la meilleure option et pourquoi?
Merci
id est le nom le plus mauvais pour un champ id. S'il vous plaît apprendre à utiliser studentid, teacherid, etc. Cela fait une énorme différence lorsque vous arrivez à des requêtes complexes et des rapports. – HLGEM
Duplicate de http://stackoverflow.com/questions/963809/should-i-use-composite-primary-keys-or-not, http://stackoverflow.com/questions/159087/composite-primary-keys-versus -unique-objet-id-champ, http://stackoverflow.com/questions/1383062/composite-primary-key-to-use-or-or-not-touse? –