Несколько ограничений внешнего ключа для одного столбца в SQL Server 2008

#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. Да, я могу только добавлять ограничения к этим таблицам, я не могу изменить дизайн таблиц или удалить какие-либо ограничения. 🙁