« WATERBEAR:Conception du logiciel » : différence entre les versions
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 8 : | Ligne 8 : | ||
* Les scripts PHP et JavaScript. | * Les scripts PHP et JavaScript. | ||
* La base de données relationnelle. (MySQL) | * La base de données relationnelle. (MySQL) | ||
Ligne 19 : | Ligne 15 : | ||
* Les données proprement dites | * Les données proprement dites | ||
La fonction principale du registre (table: tvs_registre) consiste au pilotage du fonctionnement du logiciel. | 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". | 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. | |||
[[FILE:WATERBEAR:Db.waterbear.jpg|center|1000px]] | |||
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. | |||
Version du 24 janvier 2021 à 19:38
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.
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.