La base de données ne contient que les données, organisées sous forme de tables et les contraintes référentielles qui existent entre elles. C'est le serveur MySQL qui gère l'intégrité référentielle et non le logiciel php pour des raisons de performance et de fiabilité. Pour cette raison, la base Paroiciel utilise InnoDB comme moteur principal.
La base de données utilise le codage utf8-general-ci. En règle générale, le codage utf8 est généralisé sur l'ensemble du logiciel Paroiciel.
Les tables de la base de données sont réparties en 5 grandes familles afin de permettre une plus grande facilité de maintenance. Les familles des tables sont identifiées par la première lettre du nom de celle-ci.
| Famille | Explications |
|---|---|
| F | Les tables de cette famille contiennent des données fixes souvent des énumérations. Par exemple, la liste des titres des personnes, la liste des types de paroisses, la liste des diocèses, etc... |
| P et R | Ce sont les données Permanentes. Ces données sont peu variables dans le temps et elles font surtout l'objet d'adjonction ou de modifications. Elles comprennent les foyers, les personnes, les équipes, etc... |
| M | Ce sont des données de mouvement. C'est à dire que chaque donnée est datée. Par exemple les sacrements, les convocations, les annales, etc... |
| W | Ces tables contiennent les données liées aux droits des utilisateurs. |
| X | Ces tables contiennent les données liées aux sorties paramétrables. |
| nom | commentaires |
|---|---|
| f_diocese | liste des diocèses situés en France (nom du siège et département) |
| f_typeparoisse | liste des types de paroisses |
| f_fonction | liste des fonctions possibles des prêtres en situation pastorale |
| Nom | Commentaires |
|---|---|
| f_titre | Enumération des civilités (M., Mme, Melle, etc...) |
| f_etat | Enumération des états matrimoniaux (enfant, époux, célibataire, etc...) |
| f_typesacrement | liste des sacrements possibles. Très utilisé pour le choix du formulaire à afficher |
Attention, les états matrimoniaux ne correspondent pas à ceux de l'état civil. En effet, ils sont plutôt destinés à cerner l'état de vie de la personne au sein d'un foyer. Dans le logiciel, ce sont les les codes associés à ces états qui guident le traitement. Ainsi, pour savoir si une personne est du sexe féminin, il suffira de tester si l'IDTitre est supérieur à 4.
L'état matrimonial n'a de sens qu'au sein d'un foyer.
Il y a une certaine correspondance entre les valeurs de ces énumérations qui peuvent être résumées dans le tableau ci dessous :
| Titre/Etat | 1. M. | 2. Père | 3. Fr. | 4. Mgr. | 5. Mme | 6. Melle | 7. Soeur |
|---|---|---|---|---|---|---|---|
| nom | commentaire |
|---|---|
| f_mission | liste des missions possibles des équipes |
| f_responsabilité | liste des responsabilités possibles des membres de l'équipe |
Aucun traitement particulier n'est associé à ces données fixes.
| nom | commentaire |
|---|---|
| f_typeconvocation | liste des types de convocation. Utile pour reconnaitre en particulier les messes. |
Pour faciliter la configuration des listes paramétrables, il a été implanté un dictionnaire des données qui contient une liste simplifiée des champs de la base de données (ainsi que certains champs calculés par la couche d'abstraction) et facilite ainsi le repérage des informations à imprimer.
Ce dictionnaire des données a été découpé en 9 classes de données.
| nom | commentaire |
|---|---|
| f_dicoclasse | classe des données contenues dans le dictionnaire |
| f_dictionnaire | liste des champs qui peuvent être imprimés dans les sorties paramétrables |
Il existe d'autres tables fixes qui ne sont pas encore utilisées (version 11.10)
| nom | commentaire |
|---|---|
| p_foyer | annuaire des foyers |
| p_personne | les personnes. |
| r_typeaffiliation | l'état de matrimonialité d'une personne dans un foyer. Une personne peut avoir plusieurs états relatifs à des foyers différents, mais un seul est actif à un moment donné. On peut ainsi avoir un enfant d'un foyer qui devient un époux ou un épouse dans un autre. C'est le champ "EstFoyerDefaut" qui permet de savoir quel foyer est actif pour une personne donnée. |
| p_adresse | les adresses postales des foyers et celles des personnes (un personne peut disposer de sa propre adresse même lorsqu'elle est rattachée à un foyer. C'est le cas des enfants étudiants par exemple). |
| nom | commentaire |
|---|---|
| p_equipe | contient les équipes et les sous équipes. |
| r_paroisseequipe | Cette table n'est pas utilisée. Elle ne sert à rien pour l'instant. |
Attention, la gestion de cette table appelle quelques commentaires particuliers.
le champ IDContient
Le nom de ce champ est impropre. En effet, dans le cas d'une sous équipe, il reçoit l'identifiant de l'équipe "mère". Dans le cas d'une équipe normale, il est vide.
les champs BG et BD
Les équipes et sous équipes constituent une arborescence. Ces champs servent à naviguer au sein de celle-ci. On a utilisé pour ce faire les recommandations de l'excellent article de developpez.com que l'on peut trouver ici
Aucune table permanente n'est spécifique à cette partie du logiciel.
Les données initiales sont utilisées dans toutes les parties du logiciel. Les tables sont données ici dans l'ordre dans lequel on doit les remplir.
| nom | commentaire |
|---|---|
| p_paroisse | contient les paroisses gérées dans la base paroiciel. |
| p_lieu | contient les lieux utilisés lors des actions pastorales. Ce sont principalement les lieux de culte (cathédrales, églises, chapelles), mais aussi les locaux paroissiaux, les salles de réunion, etc... |
Les champs peuvent être de tout type reconnu par mySql. Les champs varchar, char, enum doivent être codée en utf8_general_ci. Le nom des champs est libre. Toutefois, il est recommandé de les nommer en mode CamelCase (chaque mot précédé d'une majuscule) et de les faire commencer par un majuscule. Les identifiants sont repérés par le préfixe ID :




