Cette question ne concerne pas la différence entre SQL et NoSQL. Je cherche une justification pour quelque chose qui n'a vraiment aucun sens pour moi en ce moment (peut-être à cause de mon manque de compréhension ou d'appréciation).
Nous avons commencé un nouveau projet à partir de zéro en utilisant MVC5, le code Entity Framework 6 d'abord et SQL Server 2008. Lorsque l'architecte a examiné le schéma de la base de données, il a été déclaré que toutes les clés étrangères et autres contraintes de ce type devraient être supprimées car il s'agit de la «logique métier» et doit être appliqué dans la couche métier du code d'application.
Mon opinion est que les clés étrangères font partie de l'intégrité des données / référentielles et n'imitent pas vraiment la logique métier. Je vois la logique métier comme plus le processus et la validation qui contrôlent ce que / quand / comment / pourquoi les références sont appliquées. Je peux en quelque sorte comprendre que les contraintes uniques sont sans doute des processus métier, mais pour moi, cela complète simplement la logique et fait partie de l'intégrité.
Un deuxième argument est que l'objectif est d'adopter une approche NoSQL des données. J'ai trouvé cela vraiment inhabituel et peu orthodoxe: compte tenu de l'utilisation de SQL-Server 2008, de la nécessité de créer des rapports, des données non évolutives en téraoctets et du manque de considération pour les technologies telles que Mongo, Raven, etc.
Quelqu'un a-t-il déjà rencontré un tel scénario auparavant? Pourquoi quelqu'un adopterait-il une approche NoSQL dans un serveur SQL conçu pour les données référentielles et ne voudrait-il pas de clés étrangères?