Пожалуйста, проверьте таблицу ниже для упрощенной версии моей проблемы:Поля ссылки две таблицы - внешний ключ Конфликт
Таблица мальчики
BoyId
BoyName
...
Таблица Девушка
GirlId
GirlName
Настольные игрушки
ToyId
ToyName
ToyOwnerBoyOrGirl (The toy could be owned by a boy or a girl)
ToyOwnerId
Я создал два ограничения:
1) ToyOwnerId
является внешним ключом первичного ключа Boys.BoyId
2) ToyOwnerId
является внешним ключом первичного ключа Girls.GirlId
Моя цель заключается в том, чтобы сообщить базе данных, что ToyOwnerId
всегда будет одним из этих идентификаторов
Моя проблема: Когда я попытался вставить новую Игрушку с идентификатором Мальчика, у меня появилась ошибка, в которой есть ограничение foreign key conflict
.
Это дизайн сумки или я все еще могу использовать ту же конструкцию с исправлением?
Вы не можете создать внешний ключ, который ссылается на две таблицы, база данных не позволяет этого. Вам придется либо изменить свою схему (которую вы сказали, что не можете/не будете), либо жить без ссылки. Также обратите внимание, что если вы спросите «это плохой дизайн», и когда ответ «да, это плохой дизайн», ваш ответ «хорошо, но я не могу его изменить», то, возможно, вы не спрашиваете правильный вопрос. –
Я не сказал, что не могу изменить схему «вообще». Я только упомянул в своих комментариях, что использование одной таблицы для обоих объектов невозможно. – user3340627