Я делаю базу данных учеников одной школы. Вот что у меня есть:
Если вам не нравится читать, перейдите к части «Кратко»
. Проблема в том, что я не доволен этим дизайном. Я хочу, чтобы комбинация grade
, subgrade
и id_class
была уникальной и служила первичным ключом для таблицы студентов. Я могу удалить student_id
и сделать составной ключ из 3, но я этого тоже не хочу. Может быть, мне следует создать еще одну таблицу, скажем, combination_id
, где grade
, subgrade
и id_class
— внешние ключи, и есть один дополнительный столбец comb_id
, который служит идентификатором для таблицы. И все столбцы будут первичными ключами. Но проблема в том, что эти 3 столбца могут повторяться из-за этого дополнительного столбца (comb_id
).. Например, у меня могут быть одинаковые grade
, subgrade
и class_id
, но разные comb_id
, что сделает строку действительной из-за составного ключа 4 столбцов таблицы(combination_id
).
Короче говоря, я хочу, чтобы students_id
оставался единственным первичным ключом таблицы, но был внешним ключом к другой таблице, которая представляет собой уникальную комбинацию grades
, subgrade
и class_id
.
Если я не был достаточно ясен, спросите в комментариях ниже и заранее спасибо.
PS Извините за неинформативное название, но я плохо называю
РЕДАКТИРОВАТЬ 1:
Чтобы быть более ясным:
grade
может быть от 1 до 12 subgrade
может быть от a до j id_class
может быть от 1 до 30, и это ваш номер в классе
Так ученик может быть из 7б класса и его номер в классе -5