estoy leyendo un libro llamado "La biblioteca de MySQL desarrollador" de Paul Dubois y en el libro que dice:¿alguien puede explicarme qué claves principales realmente hacen?
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;
Hicimos la combinación de las dos columnas de una clave principal. Esto asegura que no tendremos puntajes duplicados para un estudiante para una prueba o prueba determinada. Tenga en cuenta que es la combinación de event_id y student_id que es única. En la tabla de puntajes, ninguno de los valores es único por sí mismo. Habrá varias filas de puntuación para cada EVENT_ID valor (uno por estudiante), y varias filas para cada valor student_id (uno para cada prueba y prueba) por parte del alumno
Lo que no está claro para es la combinación de dos columnas como una clave principal ... Es decir, estoy teniendo dificultades para visualizar lo que realmente está sucediendo debajo del capó ... Está tomando una colección de números [95, 210] por ejemplo y usando eso como una "clave" ... ¿Es apropiado pensar en una clave principal como clave para un hash?
Anteriormente siempre pensé en las claves primarias como nada más que identificadores únicos para una tabla ... pero ahora, en este contexto, estoy descubriendo qué es realmente una clave principal. ¿Alguien puede darme las claves SQL más bajas?