один внешний ключ столбца первичного ключа для двух других столбцов таблицы. Как решить проблему с вводом данных - PullRequest
0 голосов
/ 07 августа 2009

У меня есть требование, согласно которому я должен создать центральную систему входа в систему. У нас есть две вещи Corporate и Brand, каждая из которых представлена ​​в таблицах «Corporate» и «Brand».

Когда корпоративная регистрация регистрируется, предоставляется corporateID. Когда пользователь под этой корпоративной регистрацией регистрируется, существует таблица corporateuser, в которой corporateID является внешним ключом, а CorporateUserID является первичным ключом. Аналогично в случае бренда.

Итак, у нас есть CorporateUserId и BrandUserID.

Теперь у меня есть таблица с именем RegisteredUsers, в которой я хочу, чтобы пользователи как корпоративные, так и брендовые. UserID - это первичный ключ в этой таблице, который является внешним ключом как для Corporateuser, так и для Branduser.

теперь, когда я вхожу в корпоративного пользователя, я делаю запись для корпоративного пользователя, а также для RegisteredUsers. Когда я вписываю CorporateUserID в userID для RegisteredUsers. Выдает ошибку нарушения внешнего ключа.

Я полностью понимаю эту ошибку. Как я могу этого добиться. Это требование очень жесткое. Пожалуйста, скажите обходной путь

Ответы [ 2 ]

0 голосов
/ 07 августа 2009

Если вы пытаетесь вставить записи в таблицы с реляционными ограничениями, вам нужно будет выполнить все вставки в одной транзакции SQL.

0 голосов
/ 07 августа 2009

То, что вы пытаетесь сделать, не совсем понятно, но кажется, что вы хотите, чтобы первичный ключ всех трех пользовательских таблиц был одинаковым. Это не строгое отношение к внешнему ключу, но оно кажется разумным в вашем приложении.

Сначала необходимо назначить идентификатор пользователя в RegisteredUsers и использовать этот ключ при создании корпоративного пользователя или бренда пользователя. Тогда идентификаторы пользователя будут уникальными во всей системе.

Если это не то, что вам нужно, отредактируйте вашу запись с помощью таблиц, чтобы прояснить проблему.

...