Questa domanda non riguarda la differenza tra SQL e NoSQL. Sto cercando delle motivazioni per qualcosa che non ha davvero senso per me al momento (forse a causa della mia mancanza di comprensione o apprezzamento).
Abbiamo iniziato da zero un nuovo progetto utilizzando MVC5, Entity Framework 6 code e SQL Server 2008. Quando l'architetto ha riesaminato lo schema del database, ha affermato che tutte le chiavi esterne e altri vincoli di questo tipo devono essere rimossi poiché si tratta di "logica aziendale" e dovrebbe essere applicato all'interno del livello aziendale del codice dell'applicazione.
La mia opinione è che le chiavi esterne fanno parte dei dati / integrità referenziale e non imitano realmente la logica aziendale. Vedo la logica aziendale come più il processo e la convalida che controlla cosa / quando / come / perché vengono applicati i riferimenti. Riesco a capire che i vincoli univoci sono probabilmente processi aziendali, ma per me questo completa la logica e fa parte dell'integrità.
Un secondo argomento è l'obiettivo è quello di adottare un approccio NoSQL ai dati. L'ho trovato davvero insolito e poco ortodosso: considerando l'uso di SQL-Server 2008, la necessità di creare report, i dati non scalabili in terabyte e la mancanza di considerazione verso tecnologie come Mongo, Raven, ecc.
Qualcuno ha mai visto uno scenario simile prima? Perché qualcuno dovrebbe adottare un approccio NoSQL in un SQL Server progettato per dati referenziali e non desiderare chiavi esterne?