我正在读一本书由保罗·杜波依斯,并在书中,他说叫“MySQL开发的图书馆”:任何人都可以向我解释什么主键实际上做什么?
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;
我们做了两列的组合主键。 这确保了我们在给定的测验或测验中不会有重复的分数 。请注意,这是 event_id 和唯一的student_id的组合。在分数表中, 值本身都不是唯一的 。将有多个得分排的每个事项标识 值 (每名学生一个),以及多行由学生
拍摄的每张student_id数据值 (每个 测验和测试)是什么尚不清楚我是将两列组合成一个主键......意思是说,我很难想象在引擎盖下究竟会发生什么......它以一组数字[95,210]为例,并用它作为一个“钥匙”......把主钥匙当作散列钥匙是否合适?
以前我一直认为主键只不过是表格的唯一ID ..但现在在这种情况下,我发现自己究竟是在做什么主键。任何人都可以给我低SQL键?