Un exemple simple.
Actuellement 3 tables avec (entre autres) les champs suivants :
MEV (codsoc, codent, segment, codsoc_phy)
EVE (codsoc, typeve, numeve, typtie, sigtie)
TIE (codsoc, typtie, sigtie, nomtie)
La table "EVE" sert à stocker des événement, qui peuvent aussi bien être :
- des devis
- des commandes
- des livraisons
- des factures
- des inventaires
- des poses de prothèses
- des ordonnances
- des publications de journal officiel
- le planning des cours d'un étudiant
- j'en passe des meilleures
La clé est "codsoc, typeve, numeve".
CODSOC indique la société à laquelle appartient l'événement (centrale d'achat, dépôt, magasin, hôpital, etc.)
TYPEVE indique le type d'événement (devis, commande, etc.)
NUMEVE indique le numéro d'événement
TYPTIE indique le type de tiers rattaché à mon événement (un utilisateur, un client, un fournisseur, un dépôt, un médecin, un patient, un magasinier,un vendeur, etc.)
SIGTIE indique le sigle du tiers en question.
Et dans la table TIE, on retrouve CODSOC, TYPTIE et SIGTIE.
Grace à ça, on peut savoir quel tiers est rattaché à tel événement.
MEV, quant à elle, permet de dire "bon, quand je suis dans la société 'X', pour la table 'Y' et le type d'élément 'Z', je dois aller lire en réalité dans la société 'A'".
Par exemple, je suis dans la société (10) "Dépôt de Paris", et je veux consulter les livraisons que je dois honorer.
Les livraisons ne sont pas créés au dépôt, mais au service commercial qui est dans une autre société (5).
Accessoirement, afin de pouvoir faire des négiciations au niveau national avec mes clients, ces derniers sont tous gérés dans la société hodling (1).
Alors y'a moyen de faire ça de façon normalisée.
Mais accrochez-vous pour les requêtes ensuite, surtout si elles doivent marcher chez un client qui a une organisation parfairement différente.
Ici, ça coule de source, pour chaque table lue, on va rechercher dans MEV la valeur du CODSOC à interroger : c'est "automatique", simple et parfaitement fonctionnel.
Par contre, en effet, y'a pas une seule clé étrangère,car on ne sais pas faire une clé étrangère qui pointe sur plusieurs tables à la fois.
Partager