Sto leggendo un libro intitolato "La biblioteca di MySQL sviluppatore" di Paul DuBois e nel libro dice:qualcuno può spiegarmi cosa fanno effettivamente le chiavi primarie?
CREATE TABLE score
(
student_id INT UNSIGNED NOT NULL,
event_id INT UNSIGNED NOT NULL,
score INT NOT NULL,
PRIMARY KEY (event_id, student_id),
INDEX (student_id),
FOREIGN KEY (event_id) REFERENCES grade_event (event_id),
FOREIGN KEY (student_id) REFERENCES student (student_id)
) ENGINE = InnoDB;
Abbiamo fatto la combinazione delle due colonne di una chiave primaria. Ciò garantisce che non avremo punteggi duplicati per uno studente per un dato quiz o test. Si noti che è la combinazione di event_id e student_id che è univoco. Nella tabella dei punteggi, nessuno dei due valori è univoco . Ci saranno più righe punteggio per ogni event_id valore (uno per ogni studente), e più righe per ogni valore student_id (uno per ogni quiz e test) preso da parte dello studente
Ciò che non è chiaro a io sono il combinare due colonne come una chiave primaria ... Significato, sto avendo difficoltà a visualizzare ciò che sta effettivamente succedendo sotto il cofano ... Prende una serie di numeri [95, 210] per esempio e usando quello come una "chiave" ... È appropriato pensare a una chiave primaria come chiave per un hash?
In precedenza ho sempre pensato alle chiavi primarie come nient'altro che ID univoci per un tavolo .. ma ora, in questo contesto, sto trovando me stesso che cosa stia realmente facendo una chiave primaria. Qualcuno può darmi il minimo dei tasti SQL?