Moteur de règle SQL

A partir d’une simple question « ou placer les règles métier », voyons comment implémenter dans le SGBDR des règles mouvantes…

Salut à tous,

J’ai des règles de gestion complexe à appliquer à ma base de données et j’aimerai savoir s’il existe une sorte de moteur de règle qu’on pourrai utiliser dans ce cas.

L’utilité est d’externaliser au maximum les règles de gestion pour qu’elles puissent être modifiées sans intervention dans le code (Un peu comme les logiciels de paye).
Par exemple une règle serai de pouvoir calculer le montant d’une rémunération à partir du nombre de vente effectuée… Les deux éléments en causes étant dans deux ou trois tables séparées.

Je ne sais pas ce qui existe sur le marché pour faire ça ou quelle approche adopter pour permettre à mon appli d’être la plus flexible possible.

***

Le plus simple est de créer dans votre modèle de données des tables de règle et d’en implémenter la logique par des contraintes relationnelles (requêtes SQL) que tout un chacun peut produire à l’aide d’une interface graphique.

Exemple de contrainte dans un trigger :

Code :

CREATE TRIGGER <nom_trigger>  
ON <table>  
FOR INSERT, UPDATE
IF [NOT] EXISTS(SELECT * FROM (<requête graphique> ) AS T INNER JOIN <jointure_pseudo_table>)
   ROLLBACK

Exemple de règle de calcul dans un trigger :

Code :

CREATE TRIGGER <nom_trigger>  
ON <table>  
FOR INSERT, UPDATE
UPDATE Matable
SET (...) = (SELECT ... FROM (<requête graphique> ) AS T INNER JOIN <jointure_pseudo_table>)

Rien n’empêche ces requêtes de figurer dans une table et d’être générées dynamiquement dans les triggers…

Il n’y a ni plus simple ni plus performant !

————–
Frédéric BROUARD, Spécialiste modélisation, bases de données, optimisation, langage SQL.
Le site sur le langage SQL et les S.G.B.D. relationnels : http://sqlpro.developpez.com/
Expert SQL Server http://www.sqlspot.com : audit, optimisation, tuning, formation
* * * * * Enseignant au CNAM PACA et à l’ISEN à Toulon * * * * *

Laisser un commentaire