Pour des cas très simples que vous pouvez mettre votre logique métier dans les procédures stockées. Généralement, même les cas les plus simples ont tendance à se compliquer au fil du temps. Voici les raisons pour lesquelles je ne mets pas de logique métier dans la base de données:
Mettre de la logique métier dans la base de données étroitement les couples à la mise en œuvre technique de la base de données. La modification d'une table vous fera changer beaucoup de procédures stockées, provoquant de nouveau beaucoup de bugs et de test supplémentaire.
Généralement, l'INTERFACE utilisateur repose sur une logique d'entreprise pour des choses comme la validation. Mettre ces choses dans la base de données entraîne un couplage étroit entre la base de données et l'INTERFACE utilisateur ou en cas différents doublons la logique de validation entre les deux.
Il va être dur d'avoir de multiples applications fonctionnent sur la même base de données. Les changements pour une aplication faire de pause. Cela peut rapidement se transformer en un entretien cauchemar. Donc, il n'a pas vraiment d'échelle.
Plus pratiquement SQL n'est pas un bon langage pour implémenter la logique métier d'une manière compréhensible. SQL est idéal pour les définir en fonction des opérations, mais il manque des constructions de programmation "dans le grand" il est difficile de maintenir de grandes quantités de procédures stockées. Moderne OO langues sont mieux adaptés et plus souple pour ce.
Cela ne signifie pas que vous ne pouvez pas utiliser stockées proc et les points de vue. Je pense que c'est parfois une bonne idée de mettre une couche supplémentaire de procédures stockées et de points de vue entre les tables et les demande(s) de dissocier les deux. De cette façon, vous pouvez changer la disposition de la base de données sans changer d'interface externe vous permettant de refactoriser la base de données de manière indépendante.