Bei dieser Frage geht es nicht um den Unterschied zwischen SQL und NoSQL. Ich bin auf der Suche nach einer Begründung für etwas, das für mich im Moment wirklich keinen Sinn ergibt (möglicherweise aufgrund meines Unverständnisses oder meiner mangelnden Wertschätzung).
Wir haben ein neues Projekt mit MVC5, Entity Framework 6 Code First und SQL Server 2008 von Grund auf neu gestartet. Als der Architekt das Datenbankschema überprüfte, wurde angegeben, dass alle Fremdschlüssel und andere solche Einschränkungen entfernt werden sollten, da dies „Geschäftslogik“ und „Geschäftslogik“ ist sollte innerhalb der Business-Schicht des Anwendungscodes angewendet werden.
Meiner Meinung nach bilden Fremdschlüssel einen Teil der Daten- / Referenzintegrität und ahmen die Geschäftslogik nicht wirklich nach. Ich sehe Geschäftslogik eher als den Prozess und die Validierung, die steuern, was / wann / wie / warum Referenzen angewendet werden. Ich kann irgendwie verstehen, dass eindeutige Einschränkungen wohl Geschäftsprozesse sind, aber für mich ergänzt dies nur die Logik und ist Teil der Integrität.
Ein zweites Argument ist das Ziel eines NoSQL-Ansatzes für die Daten. Ich fand das wirklich ungewöhnlich und unorthodox: In Anbetracht der Verwendung von SQL-Server 2008, der Notwendigkeit der Berichterstellung, der nicht auf Terabyte skalierbaren Daten und der mangelnden Berücksichtigung von Technologien wie Mongo, Raven usw.
Hat jemand schon einmal ein solches Szenario erlebt? Warum sollte jemand einen NoSQL-Ansatz in einem SQL Server anwenden, der für referenzielle Daten konzipiert ist und keine Fremdschlüssel möchte?