констреинты в соотвествии с бизнес логикой, и при попытке например создания записи, ловить интегрити ошибки и райзить свои красивые кастомные-бизнесовые ?
Или же все инварианты в бизнес коде проверять, оставив контсреинты как дополнительную страховку от неконсистентности данных
Второй вариант лучше, мне кажется
Второе.
В целом зависит от множства факторов - критичность транзакционности и консистентности, возможностей железа, наличия гуру ДБА на проекте, структуры и потока запросов (тупо хотя бы OLAP/OLTP профили), необходимости дохода до системы чем-то в обход приклада, количества людей на проекте. Но если это небольшой/средний проект на 2-3 разработчика и ходить будет только приклад - то вероятно да, лучше все пилить на уровне бизнес-логики кода.
Обсуждают сегодня