#sql #tsql #sql-server-2008
#sql #tsql #sql-server-2008
Вопрос:
У меня есть две таблицы TableA и TableB. Теперь TableA имеет 2 столбца: ID и Name, TableB имеет 3 столбца: Идентификатор, имя и TableAID. Теперь существует ограничение внешнего ключа из TableA.ID = TableB.Приведенная таблица. Мне нужно иметь возможность разрешить TableB.TableAID либо использовать значения из TableA.Идентификатор или TableB.ИДЕНТИФИКАТОР, следовательно, несколько ограничений внешнего ключа для одного столбца, и мне нужно, чтобы он разрешал либо или. Спасибо!
Комментарии:
1. Можете ли вы использовать NULL в TableB. Таблица указана как указание на то, что вы должны использовать TableB.ID ? Это означало бы, что таблица B. Идентификатор, который вы хотите вставить, будет тем, который уже есть в записи, что, вероятно, не так…
Ответ №1:
Это явный признак плохого дизайна. Вам никогда не нужно будет этого делать, и если вы это сделаете, вам нужно переосмыслить свой дизайн.
Вы не можете связать поле с двумя разными FKS.
Комментарии:
1. Да, я могу только добавлять ограничения к этим таблицам, я не могу изменить дизайн таблиц или удалить какие-либо ограничения. 🙁