Внешние ключи никогда не были явными (таблица (столбец) FOREIGN KEY REFERENCES), объявленная в проектах (бизнес-приложениях и веб-сайтах социальных сетей), над которыми я работал.
Но всегда существовало соглашение о присвоении имен столбцам, которые были внешними ключами.
Это похоже на нормализацию базы данных - вы должны знать, что вы делаете и что является следствием этого (в основном производительность).
Мне известны преимущества внешних ключей (целостность данных, индекс для столбца внешнего ключа, инструменты, знакомые со схемой базы данных), но я также боюсь использовать внешние ключи в качестве общего правила.
Кроме того, различные механизмы баз данных могут по-разному обслуживать внешние ключи, что может привести к незначительным ошибкам во время миграции.
Удаление всех заказов и счетов удаленного клиента с помощью ON DELETE CASCADE - прекрасный пример красивой, но неправильно спроектированной схемы базы данных.