(entre la modélisation et la concrétisation sous postgres).
Bonjour Cinephil,
Besoin de votre grande expertise s'il-vous-plaît.
Contexte :
Actuellement dans une équipe de programmeurs,
Faisant fonction DBA, je dois mettre à disposition de l'équipe du développement front php/html/css,
un schéma de 150 tables correctement modélisées MERISE;
Je suis sous postgres.
J'ai un schéma 'gestion' contenant une grande table intermédiaire de plus d'une centaine de colonnes (genre fichier EXCEL)
J'ai un schéma 'public', rassemblant les nombreuses tables de mouvement, et tables historiques de mouvement
Puis-je présenter aux développeurs,
une seule table de mouvement 'gestion'.'compta', en prenant notamment moi-même
en charge (DBA), la programmation de fonctions et déclencheurs,
pour répercuter, lors de son actualisation par les gestionnaires de l'application,
les modifications d'un enregistrement de 'gestion'.'compta', dans mes tables public.comptabilite#cmp, public.salaire#sal
Cette activité d'implémentation dans les deux tables du schéma PUBLIC, doit rester inconnue
aux développeurs, comme aux gestionnaires.
Ceux ci ont uniquement à connaître, la table intermédiaire du schéma GESTION.
J'ai lu quelque par (source oubliée), qu'on devait tout faire pour faciliter la vie des développeurs,
en les libérant de l'interaction complexes avec des dizaines de tables de mouvement jointes,
pour qu'ils n'aient accès en lecture/écriture, qu'à une seule table intermédiaire de mouvement,
dont toutes les colonnes sont aliasées.
Au lieu d'interagir par transactions sql synchronysées, avec de très nombreuses tables de mouvement,
aux noms de colonnes techniques (emp#id, sal#id,sal#lib etc...)
, les développeurs interagissent avec une seule table de mouvement, dont les noms de colonnes sont aliasés convivialement,
explicitement libellés pour les gestionnaires chargés d'enregistrer des dossiers dans l'application.
En d'autres termes, plus concrets :
L’étape Combiner me permet de créer des jointures à partir de deux tables en une seule session de jointure.
Pour combiner les enregistrements de deux tables séparées, je les joins pour former une nouvelle table plus complète.
Les jointures me permettent de consolider mes données et d’offrir un affichage plus riche des informations qu’elles contiennent,
avec un accès très facile (une seule table intermédiaire)
Dans mon exemple, j'ai joint la table Comptabilité et la table Salaires en utilisant une jointure interne pour créer une nouvelle table qui présente les données d’employés et salaires.
Le gestionnaire saisit ajoute, met à jour ou supprime les données des employés et les données des salaires
Une fois les données actualisées dans cette table intermédiaire par les gestionnaires,
un déclencheur que j'ai programmé répercute la mise à jour des tupples
de cette table intermédiaire, dans les tables sous-jacentes Comptabilité et Salaire.
Concernant mon projet réel, l'étape Combiner me permet de projeter le contenu de 12 tables de mouvement,
dans une table intermédiaire dédiée aux gestionnaires et développeurs, pour afficher, saisir, mettre à jour, supprimer (CRUD)
avec des colonnes aux noms conviviaux.
Je n'ose surtout pas me lancer, de peur d'être à côté de la plaque.
N'ayant jamais pratiqué, voici mes doutes :
Joindre le plus possible de colonnes de mes tables de mouvement,dans une seule table intermédiaire.
Est-ce malin ? Est-ce une usine à gaz de déclencheurs trop compliquée à éviter absolument ?
Qui ressort gagnant d'une telle organisation ?
MERCI POUR VOS PRECIEUX CONSEILS;
Partager