У меня есть таблица базы данных с двумя внешними ключами, указывающими на две разные таблицы. Деловая логика c требует отношения "либо или"; только один внешний ключ может быть NOT NULL в любой момент времени.
Вот четыре возможных состояния, которые внешние ключи могут хранить в зависимости от бизнес-логики c:
- NULL, NULL - в порядке
- номер, NULL - в порядке
- NULL, номер - в порядке
- номер, номер - недопустимая бизнес-логика c
Я использую Django, и я знаю, что могу написать несколько проверок onSave (), которые справятся с этим, но это выглядит как hacki sh.
Есть ли лучший способ для разобраться с этим бизнес логи c?