2014-09-23 3 views
-1

меня такая ситуация:SQL Server: Multiple отношения для того же поля

Таблица: Статья

Id

имя

категория

....... ...

Таблица: Услуги

ID

имя

NR

значение


Стол: Sell_item

Id

item_id

количество

цена

значение


Теперь проблема заключается в следующем: Поле ITEM_ID на столе sell_item может быть идентификатор для статьи или услуг. Поэтому мне нужно создать двойное соотношение для этого поля, одно с таблицей статей - с таблицей Service.

Возможно ли это?

Если нет, или если я ошибаюсь, как я могу решить эту ситуацию?

спасибо.

ответ

0

Этот вид обсуждается в this thread, но основным является то, что внешний ключ может использоваться только для выражения ссылки и зависимости между двумя таблицами.

С чистого SQL вы могли бы написать trigger, который мог бы выполнить некоторые из этих проверок. Это потребует, чтобы все еще нужно было проверять данные во время вложений обновлений и удалять, чтобы обеспечить согласованность.

Если вы данные потребляются другим приложением, которое поддерживает концепцию (например, спящий режим) вы мог дискриминатор или table per class hierarchy, который обеспечивает определенные рамки с возможностью programmaticaly сделать определение по типу данных и где загрузить его, но это не даст вам ограничений на уровне DB, который вы ищете.

Надеюсь, это поможет.