Этот вопрос меня смущает, у меня есть информационная система колледжа, в которой таблица соединения между таблицей студентов и таблицей предметов (учебная программа), первичный ключ является составным ключом (StudentID, SubjectID), и оба они являются внешними ключами, но студент может не сдать экзамен и повторите тему, чтобы у нас был дубликат ПК, и нам нужно записать все данные. У меня есть два способа решить этот вопрос, но я не знаю, как лучше всего?
- Добавьте новый столбец в качестве первичного ключа вместо составного ключа.
- Присоединитесь к столбцу составного ключа Season Column и year, и составной ключ будет (StudentID, SubjectID, Season, Year). Я должен упомянуть, что мне не нужен этот составной ключ в качестве внешнего ключа.
Какой способ лучше для производительности и целостности БД?