EDIT: моя пересмотренная диаграмма отношений сущностей Студент может иметь много контактов, но это не касается того, на каком курсе они находятся. Таким образом, идентификатор курса в tblContact был ненужным, поэтому я использовал первичные ключи в tblStudent, относящиеся к классу для конкретного назначенного преподавателя, и курс, в котором учащийся участвовал с этим TMA. УфДизайн базы данных для системы отслеживания учащихся
/Edit
Моего Старого ERD
отмечает, что StudID и CourseID является объединенным соединением первичного ключа
Моим вопросом: Должна У меня есть studI D и courseID в tblContact? или я должен просто иметь StudID, потому что я использую составной первичный ключ. Я думал, что должен иметь оба значения в tblContact и tblStudentTMA? Правильно ли это?
Первый вопрос: Мое мнение состояло в том, что вам не нужны первичные ключи в столах без детей. Потому что вы не обращались к ним, так вам нужно сначала придумать предложение? – Apple
Для каждой таблицы требуется либо первичный ключ, либо его эквивалент. В базе данных SQL объявление столбца «NOT NULL UNIQUE» эквивалентно объявлению «PRIMARY KEY». Ключи связаны с идентификацией, а не с тем, ссылаются ли другие таблицы на ключи. Говоря кратко, каждая таблица SQL должна каким-то образом идентифицировать каждую строку. Путь SQL с ключом.(Либо «NOT NULL UNIQUE», либо «ПЕРВИЧНЫЙ КЛЮЧ».) –