外键作为主键

San*_*Lee 4 mysql database-design foreign-keys primary-key sqlyog

我设计了这样的表格:

table1: students
---------------------
PK id
name
number
...
---------------------

table2: students_score
---------------------
PK FK student_id
math_score
english_score
...
---------------------

问题1

如果有些学生根本没有分数,那桌面设计是不是很好?

问题2

如果这是好的设计,那我怎样才能让FK成为MySQL中的PK呢?我不知道怎么做.每次我尝试建立如上所述的关系时,SQLYog会说这个错误:Can't create table 'students.#sql-a31_2c8e' (errno: 150)

谢谢

更新

从这里找到了问题2 的答案.这只是类型(int,signed int)的问题.

Kev*_*ker 5

我会在这些方面提出更多建议:

table1: students
---------------------
PK id
name
number
...
---------------------

table3: classes
---------------------
pk id
name

table2: students_score
---------------------
fk student_id
fk class_id
score
PK(student_id, class_id)
Run Code Online (Sandbox Code Playgroud)