Це питання не стосується різниці між SQL та NoSQL. Я шукаю певне обґрунтування чогось, що на даний момент для мене справді не має сенсу (можливо, через мою нерозуміння чи вдячність).
Ми розпочали новий проект з нуля за допомогою MVC5, коду Entity Framework 6 спочатку та SQL Server 2008. Коли архітектор переглянув схему бази даних, було заявлено, що всі сторонні ключі та інші такі обмеження потрібно видалити, оскільки це "бізнес-логіка" та має застосовуватися в бізнес-рівні коду програми.
На мою думку, зовнішні ключі складають частину цілісності даних / референції і насправді не імітують ділову логіку. Я розглядаю бізнес-логіку як більше процес і перевірку, яка контролює, що / коли / як / чому застосовуються посилання. Я можу зрозуміти, що унікальні обмеження - це, мабуть, бізнес-процеси, але для мене це просто доповнює логіку і є частиною цілісності.
Другим аргументом є мета прийняти підхід NoSQL до даних. Я вважав це дійсно незвичним і неортодоксальним: враховуючи використання SQL-Server 2008, необхідність звітування, не масштабування даних до терабайт і недолік уваги до таких технологій, як Mongo, Raven тощо.
Хтось раніше натрапляв на такий сценарій? Чому хтось повинен застосовувати підхід NoSQL в SQL Server, призначеному для референтних даних, і не хоче сторонніх ключів?