Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Young Mockin Member Откуда: Сообщений: 75 |
Есть таблица A (ID, Name). Есть таблица Spec_A (A_ID, Spec_Name). Spec_A.A_ID Ссылается на A.ID. Есть таблица A_Person (A_ID, Person_ID) - ссылается на A. Есть таблица Spec_A_Person (Spec_A_ID, Person_ID) - ссылается на Spec_A. Хочу чтобы в A_Person.A_ID не могли попасть значения из Spec_A.A_ID. То есть Spec_A_Person ссылается на spec версии записей из А - реилазовано за счет FOREIGN KEY. Но A_Person не должна ссылаться на такие записи, а только на те записи из A, для которых нет spec версии. SQL 2008 R2 может что-нибудь предложить на этот счет? Предложения по изменению дизайна тоже интересно было бы услышать. |
18 сен 13, 13:14 [14854025] Ответить | Цитировать Сообщить модератору |
Гость333 Member Откуда: Сообщений: 3683 |
Добавить в таблицу A столбец Type с возможными значениями 1, 2. Добавить в таблицу A_Person вычисляемый столбец Type, всегда равный 1. Добавить в таблицу Spec_A вычисляемый столбец Type, всегда равный 2. Сделать внешние ключи по сочетанию A_ID, Type. |
18 сен 13, 13:23 [14854093] Ответить | Цитировать Сообщить модератору |
Young Mockin Member Откуда: Сообщений: 75 |
Спасибо. Сурово конечно, но, думаю, заберу. |
18 сен 13, 13:40 [14854217] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |