Зашла в тупик. Есть таблицы A, B, C, D. Запись таблица A может принадлежать в один момент времени одной записи любой из таблиц B, C, D. Но только одной. Как реализовать сие? СУБД - postgresql.
Если использовать таблицы связей на каждую сущность, тогда можно будет создать связь одной записи таблица A с одной записью таблиц B, C, D, но сразу со всеми.
Это не годится.
Если расширить таблицу A колонками nullable c идентификаторами записей таблиц B, C, D опять же непонятно как обеспечивать целостность.
CHECK вроде не могёт в приоритеты операций.