"@ Эрвин Я бы предпочел решения, которые не связаны с триггерами - у меня к ним патологическое отвращение."
Извините за новый ответ, не авторизован для добавления комментария к этому.
Насколько я могу видеть, вы можете избежать "просто использования отложенных ограничений" в вашем конкретном случае из-за характера ограничений, которые вы хотите наложить.Если это работает для вас, и вы удовлетворены, тогда все в порядке, не так ли?
Моя главная мысль - ограничения (как в: «любое мыслимое бизнес-правило, с которым вы можете столкнуться как дизайнер базы данных»), можетполучить сколь угодно сложным.Подумайте о базе данных по генеалогии, в которой вы хотите применить правило, согласно которому «ни один человек не может быть предком самого себя, В КАЧЕСТВЕ СТЕПЕНИ» (это мой любимый пример, потому что в конечном итоге он включает транзитивное замыкание и / или рекурсию).НЕТ СПОСОБА, чтобы вы могли заставить СУБД SQL применять такие правила без использования триггеров (или, кстати, без использования рекурсивного SQL внутри триггера).
Ни ваша СУБД, ни я, ни кто-либо ещеКвалифицированный в теории отношений, Фрейд будет заботиться о любых патологиях, которые у вас есть.Но, возможно, из-за этих патологий, о которых вы упомянули, было бы интересно наблюдать, что вы можете делать все, что захотите, без необходимости определять какие-либо триггеры, если вы используете разработанную мной СУБД (она поддерживает триггерный режим).вещи, но вы не обязаны прибегать к ним для обеспечения целостности данных).