2016-03-04 1 views
0

Я пытаюсь создать отношения «Множество ко многим» с студией SQL Server Management между двумя таблицами «Курсы и студенты». Это отношение использует таблицу соединений, называемую Enrollment. Я начал с создания отношений 1: M между учениками и регистрацией, чтобы столбец studentId в таблице «Зачисление» указывал на столбец «studentId» в таблице «Студент». Это сработало хорошо. Моя проблема возникает, когда я создаю свои отношения 1: M между курсами и регистрацией. Столбец courseId в таблице регистрации должен указывать на столбец courseId в таблице «Курсы». Диалог отношений появляется, а столбцы в таблице первичных ключей (регистрация автоматически заполняется курсом Id и studentId. В таблице Курсов нет столбца studentId, поэтому я удаляю это из столбцов в таблице первичных ключей. Я получаю сообщение об ошибке «Столбцы в таблице. Регистрация не соответствует существующему первичному ключу или значению UNIQUE. Этот метод отлично работал для создания 1: M между учащимися и регистрацией. Почему я получаю эту ошибку внезапно?Как создать связь между двумя таблицами, в которых уже есть связь с другой таблицей?

enter image description here enter image description here

+0

Возможный дубликат [SQL Server 2008: столбцы в таблице не соответствуют существующему первичному ключу или уникальному ограничению] (http://stackoverflow.com/questions/4667818/sql-server-2008-the-columns-in -стол-д-не-матч-ан существовавшие-первичный ключ или Уны) –

ответ

0

причина ваши Курсы таблица имеет два поля в это первичный ключ. В решении вы добавляете новое поле с именем semesterId в Зачисление таблицы и используйте как semesterId, так и courseId при создании внешнего ключа.

0

Первичный ключ вашего курса включает в себя SemesterID, который не находится в таблице регистрации. Я бы предположил, что SemesterID должен быть в таблице «Зачисления», а не в таблице «Курсы», поскольку учащийся будет зачислен на курс в конкретном семестре.

Смежные вопросы