Этот вопрос не о разнице между SQL и NoSQL. Я ищу какое-то обоснование для чего-то, что действительно не имеет смысла для меня в данный момент (возможно, из-за моего отсутствия понимания или оценки).
Мы начали новый проект с нуля, используя сначала MVC5, код Entity Framework 6 и SQL Server 2008. Когда архитектор рассмотрел схему базы данных, было заявлено, что все внешние ключи и другие подобные ограничения должны быть удалены, поскольку это «бизнес-логика» и следует применять в рамках бизнес-уровня кода приложения.
Мое мнение таково, что внешние ключи формируют часть целостности данных / ссылок и не имитируют бизнес-логику. Я вижу бизнес-логику как процесс и валидацию, которая контролирует, какие / когда / как / почему / применяются ссылки. Я могу понять, что уникальные ограничения - это, возможно, бизнес-процессы, но для меня это просто дополняет логику и является частью целостности.
Вторым аргументом является цель - принять NoSQL-подход к данным. Я обнаружил, что это действительно необычно и неортодоксально: учитывая использование SQL-Server 2008, необходимость создания отчетов, данные, не масштабируемые до терабайт, и отсутствие внимания к таким технологиям, как Mongo, Raven и т. Д.
Кто-нибудь сталкивался с таким сценарием раньше? Зачем кому-то применять NoSQL-подход в SQL Server, предназначенном для ссылочных данных, и не хотеть внешних ключей?