Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хочу сделать ограничение.  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Хочу сделать ограничение.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Добавить в таблицу A столбец Type с возможными значениями 1, 2.
Добавить в таблицу A_Person вычисляемый столбец Type, всегда равный 1.
Добавить в таблицу Spec_A вычисляемый столбец Type, всегда равный 2.
Сделать внешние ключи по сочетанию A_ID, Type.
18 сен 13, 13:23    [14854093]     Ответить | Цитировать Сообщить модератору
 Re: Хочу сделать ограничение.  [new]
Young Mockin
Member

Откуда:
Сообщений: 75
Спасибо. Сурово конечно, но, думаю, заберу.
18 сен 13, 13:40    [14854217]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить