« WATERBEAR:Conception du logiciel » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 42 : Ligne 42 :




Parmi les autres tables, on retrouve un journal du suivi des modifications faites dans le registre et une série de tables pouvant journaliser le suivi de l'exécution du logiciel dans un but de "debugging". Ces tables sont utiles pour le développement du logiciel. La table "tvs_paniers" gère les paniers comme on peut s'en douter d'après son nom.
Parmi les autres tables, on retrouve un journal du suivi des modifications faites dans le registre et une série de tables pouvant journaliser le suivi de l'exécution du logiciel dans un but de "debugging". Ces tables sont utiles pour le développement du logiciel. La table "tvs_paniers" gère les paniers comme on peut s'en douter d'après son nom, ainsi que les statistiques.





Version du 26 janvier 2021 à 12:11

But

Ce poste passe en revue quelques aspects de l'organisation du logiciel.


Organisation

Le logiciel est composé de parties principales:

  • Les scripts PHP et JavaScript.
  • La base de données relationnelle. (MySQL)


Base de données

La base de données rassemble nombre de tables. Nous nous intéresserons à deux blocs de tables:

  • Le registre
  • Les données proprement dites

La fonction principale du registre (table: tvs_registre) consiste au pilotage du fonctionnement du logiciel, de définir quand et comment exécuter les scripts. Ce qui le rend très modulable.

En outre, une partie des données de gestion se trouvent dans le registre. D'une part, nous y trouvons les données nécessaires pour l'authentification: utilisateurs et postes. Elles se trouvent sous le noeud "system". Les autres rassemblent ce qu'on nomme usuellement, les tables d'aide. Toutes ces données ont la particularité de pouvoir être traduites en plusieurs langues. Elles se trouvent sous le noeud "profiles/defaut/langues/listes".

La majorité des autre tables de la base de données sont par groupe de deux, du style "obj_XXXX_acces" et "obj_XXXX_liens". Le "XXXX" est à remplacer par le nom repris dans chaque case du schéma ci-dessous. Les tables "obj_XXXX_acces" contiennent les données, ce sont les boites du schéma ci-dessous; les tables "obj_XXXX_liens" définissent les liens entre les enregistrements des données et les enregistrements des données d'une autre table, ils sont représentés par une flèche dans le schéma ci-dessous. Chaque case regroupe un ensemble de données concernant un sujet. Les deux cases du dessous ("collection" et "oeuvre") ne sont pas utilisées ni référencées dans le registre. La boite "vedette_mat" est référencée mais ne semble pas utilisée. Les données correspondantes semblent se retrouver dans la boite "autorite_mat". Deux boites sont centrales: "biblio" et "lecteur". "biblio" contient les données des document (livres, périodiques, CD, DVD,...); "exemplaire" est le pendant physique du document. En dessous, on trouve le système d'approvisionnement en documents physiques. "lecteur" contient les caractéristiques des lecteurs. Respectivement à gauche et à droites, les tables périphériques complètent ces deux groupes d'informations centrales. Au centre, on retrouve le lien. En effet, le but principal d'une bibliothèque est d'organiser le prêt de document à des lecteurs.


WATERBEAR:Db.waterbear.jpg


Le nom dans les boites sont assez explicites et leurs liens logiques. Quelques uns méritent une explication:

  • resa: réservation de document
  • abo: abonnement à un périodique de la part du fond de bibliothèque
  • abonnement: abonnement d'un lecteur aux bibliothèques

Si vous voulez intervenir directement dans les tables de la base de données, il faut y aller avec beaucoup de précautions. Son organisation n'est pas classique. En effet, voici quelques points:

  • une table contient souvent les données d'une autre table en doublon
  • certains champs peuvent contenir plusieurs informations séparées par un barre verticale
  • certaines colonnes sont dédoublées, l'un servant aux données, l'autre comme clé de tri
  • chaque enregistrement contient un champs de type XML rassemblant l'ensemble des données à afficher dans un écran

Normalement chaque information doit être présente de façon unique. Vous comprendrez facilement que si vous changez une données, il faut connaitre où se trouvent les informations équivalentes et les remplacer aussi. Je conseille de laisser le logiciel travailler. Il fait très bien cela.

Je suppose que cette organisation des données a été adoptée afin de faciliter et d'optimiser le déroulement du logiciel.


Parmi les autres tables, on retrouve un journal du suivi des modifications faites dans le registre et une série de tables pouvant journaliser le suivi de l'exécution du logiciel dans un but de "debugging". Ces tables sont utiles pour le développement du logiciel. La table "tvs_paniers" gère les paniers comme on peut s'en douter d'après son nom, ainsi que les statistiques.




->retour au menu de Waterbear