Проверить ограничение для обеспечения ссылочной целостности?

Можем ли мы использовать контрольное ограничение для принудительного применения ссылочного ограничения? Скажем, у меня есть столбец, содержащий UUID; этот UUID может ссылаться на таблицу A или B в зависимости от значения 2-го столбца.

      ------------------------------------------
|ID      | Type      | PK in Other Table |
------------------------------------------
|1       | Employee  |    500            |
------------------------------------------
|2       | Store     |    7000           |
------------------------------------------

таким образом, запись №1 указывает на запись в таблице сотрудников, №2 указывает на запись в таблице хранилища с соответствующим PK. Таким образом, цель состоит в том, чтобы обеспечить ссылочную целостность на основе «Типа».

1 ответ

Не с этой моделью данных, нет.

У вас могут быть отдельные столбцы, т.е. и , с ограничениями внешнего ключа для соответствующих таблиц и ограничением проверки, которое гарантирует, что только правильный столбец для конкретного введен.

Есть потенциально другие способы настройки модели данных в зависимости от того, что вы на самом деле моделируете. Мне немного сложно представить себе сотрудников и магазины как отдельные подтипы какого-то типа более высокого уровня. Но если ваш фактический вариант использования - это что-то еще, потенциально имеет смысл иметь таблицу супертипов, которая является фактическим родителем, дочерним элементом которого являются все таблицы.

Другие вопросы по тегам