Questa domanda non riguarda la differenza tra SQL e NoSQL. Sto cercando alcune ragioni per qualcosa che in questo momento non ha senso per me (forse a causa della mia mancanza di comprensione o apprezzamento).
Abbiamo avviato un nuovo progetto da zero utilizzando MVC5, il codice Entity Framework 6 e SQL Server 2008. Quando l'architetto ha esaminato lo schema del database, è stato affermato che tutte le chiavi esterne e altri vincoli dovrebbero essere rimossi poiché questo è "business" logica "e dovrebbe essere applicata all'interno del livello aziendale del codice dell'applicazione.
La mia opinione è che le chiavi esterne fanno parte dell'integrità dei dati / referenziale e non imitano la logica aziendale. Vedo la logica aziendale più il processo e la convalida che controlla quali / quando / come / perché i riferimenti vengono applicati. Riesco a capire che i vincoli unici sono senza dubbio processi di business, ma per me questo semplicemente integra la logica e fa parte dell'integrità.
Un secondo argomento è l'obiettivo è adottare un approccio NoSQL ai dati. Ho trovato questo inusuale e poco ortodosso: considerando l'utilizzo di SQL-Server 2008, la necessità di generare report, i dati non scalati ai terabyte e la mancanza di considerazione verso tecnologie come Mongo, Raven, ecc.
Qualcuno ha mai incontrato un simile scenario? Perché qualcuno dovrebbe adottare un approccio NoSQL in un server SQL progettato per i dati referenziali e non desidera le chiavi esterne?