Bonjour CinePhil,
Oui, je suis maître du modèle de données.
Pour cette raison, j'ai réalisé un schéma que je crois juste,
pour ne pas chercher partout les informations non redondantes, que je stocke.
(150 tables, c'est à dire +- 1500 colonnes, cqfd un effort de mémoire pour 1500 mnémoniques et 1500 libellés désignant mes colonnes)
Très nombreuses, mes tables sont néanmoins toutes justifiées.
+- 50 tables de mouvements, historiques et/ou de liaisons;
+- 100 tables de référence;
Peut être aurais-je dû me limiter à un modèle moins expressif de 120 tables ?
10 tables de mouvements et 30 tables de référence sont irriguées mensuellement, par importation de sources de données externe (liaison ODBC).
Elles présentent des données en lecture seule, aux gestionnaires de mon SI.
35 tables sont irriguées quotidiennement, par saisie-ajout-modification-archivage de mes gestionnaires.
5 tables historiques sont uniquement irriguées par des déclencheurs insertion et/ou mise à jour
L'irrigation provient de 3 autres tables, alimentées pour partie, par les gestionnaires, et pour partie, par rafraîchissement du contenu des tables externes en liaison ODBC;
(Cela me permet d'associer quotidiennement matricule, codgrade, date de changement de grade, codechelon, date de changement d'échelon, codposte, date de changement de niveau de poste, niveau de poste)
Lors d'un mouvement d'avancement, dénombrer les jours passé par un employé, ayant un grade donné et un échelon de grade donné, sur un poste d'un niveau donné.
Cela répond au cas d'utilisation consistant à décompter +- des jours d'ancienneté d'un matricule sur un poste d'un certain niveau pour un matricule ayant un certain grade,
et un certain échelon de grade, afin de déterminer une catégorie de vivier d'avancement dans lequel prendre en compte sa candidature.
Bien compris. Pas de souci.
Aucun stress concernant les vues en lecture seule.
OK pour le trigger INSTEAD OF.
Présente-t-on dans une vue modifiable, une association de 2 tables, de 3 tables, de 4 tables ...
étant donné qu'il faudra sous postgres, passer par la programmation d'une transaction.
Privilégie t-on beaucoup de petites vues, une seule table, jointe à une seule table associée, un maximum de 2 tables ?
Privilégie t-on moins de vues, et des grosses vues plus exhaustives, en projetant le plus possibles de colonnes, sans se fixer de limites concernant le nombre de jointures avec les tables associées ?
Concernant mon développeur web, il préfère travailler un seul 'tableau' de toutes les colonnes de mouvement, pour ne pas avoir à s'exténuer à programmer des formulaires intriqués très complexes.
Ok, bien compris l'exemple, et ce que je dois dire au développeur,
Merci pour la recommandation concernant la gestion d'erreur.
J'ai déjà réalisé le schéma (sans les vues).
Grand merci pour la proposition !
Je transmets mon schéma en ouvrant une nouvelle discussion.
Ok. Je ne pense pas bloquer là-dessus.
Du courage, du courage et encore du courage.
Uniquement expérimenté sur des projets de 20 tables, je suis à genoux devant ma montagne de 150 tables.
Comment programmer intelligemment les mises à jours mensuelles de 40 tables, et réaliser des vues en lecture seule et vues modifiables,
pour simplifier l'interaction avec 50 tables de mouvement ?
Ce qui me manque, c'est de la méthode, et de la confiance.
Sauter le pas de 20 tables à 150 tables est lourd.
Des conseils et/ou modèles d'organisation seraient bienvenus !
Ce qui me stressait le plus, c'était de me lancer dans les déclencheurs et les procédures, sans être évalué sur l'opportunité de les envisager.
Organiser l'écriture des données, depuis une vue unique, composée de colonnes aux noms aliasés pour interagir avec le contenu de plusieurs tables de mouvement.
Je ne savais pas si c'était une ânerie, ou le prix à payer.
Le travail à fournir se justifait-il ?
Finalement, c'est un point de passage, à un niveau supérieur.
Merci infiniment pour la qualité de la lecture !!!
Partager