Предположим, у меня есть сценарий со следующей моделью: таблица Animal
, которая представляет любое животное, таблица Dog
и таблица Bird
, каждая из которых имеет отношение 1: 1 с таблицей Animal
.
Animal
INTEGER id (PK)
STRING name
Птица
INTEGER id (PK FK referencing `Animal.id`)
Собака
INTEGER id (PK FK referencing `Animal.id`)
(для ясности даю только ключи)
Как я могу гарантировать, что у данной строки в таблице Animal
будет ТОЛЬКО одна указанная строка в таблице Dog
или Bird
? Сама модель это позволяет ...
Животное не может быть Dog
и Bird
одновременно ( не в мифологии, но это не так: P )
Было бы лучше, если бы это можно было сделать, просто поиграв с моделью, без триггеров ...
Любой совет будет оценен:)