"Вот обсуждение AskTom по этой теме. Не существует жесткого и быстрого правила по этому вопросу (иначе не было бы дебатов!) ..."
Да, есть. Декларативный всегда лучше, чем в процедурном отношении. Декларативный менее подвержен ошибкам. Декларативный легче поддерживать. Декларативный - больше самодокументируемый, чем процедурно осуществленный. Декларативный предоставляет лучший повод для оптимизации СУБД, а СУБД - это лучший оптимизатор, чем программист, в большинстве случаев.
Единственное преимущество, реализованное процедурно, заключается в том, что оно означает задания для тех, у кого их не было бы, если бы были доступны истинные декларативные ограничения, а не только плохие PK + FK, которые мы получаем из SQL.