wikiDevBase]

Manirac

LA BASE DE DONNEES

1 Généralités

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.

2 Les tables

2.1 codification des noms des tables

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.

2.2 catalogue des données fixes

2.2.1 les données fixes des données générales

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

2.2.2 les données fixes (énumérations) de la gestion des foyers

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
  1. Enfant | oui | oui | oui | oui | - | oui | oui
  2. époux | oui | - | - | - | - | - | -
  3. épouse | - | - | - | - | oui | - | -
  4. célibataire | oui | - | - | - | - | oui | -
  5. séparé | oui | - | - | - | - | - | -
  6. séparée | - | - | - | - | oui | - | -
  7. union civile | Oui | - | - | - | oui | - | -
  8. cohabitant | oui | - | - | - | - | - | -
  9. cohabitante | - | - | - | - | oui | oui | -
  10. organisation | - | - | - | - | - | - | -
  11. consacré | oui | - | oui | - | - | - | -
  12. consacrée | - | - | - | - | - | - | oui
  13. veuf | oui | - | - | - | - | - | -
  14. veuve | - | - | - | - | oui | - | -
    10.clerc | - | oui | oui | oui | - | - | oui
    11.Apparenté | oui | oui | oui | oui | oui | oui | oui

2.2.3 les données fixes liées aux équipes

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.

2.2.4 les données fixes de l'agenda

nom commentaire
f_typeconvocation liste des types de convocation. Utile pour reconnaitre en particulier les messes.

2.2.5 les données fixes liées aux sorties paramétrables

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

2.2.6 autres données fixes

Il existe d'autres tables fixes qui ne sont pas encore utilisées (version 11.10)

2.3 Catalogue des données permanentes

2.3.1 Gestion des foyers

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).

2.3.2 gestion des équipes

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

2.3.3 gestion de l'agenda

Aucune table permanente n'est spécifique à cette partie du logiciel.

2.3.4 données initiales

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...

3 Les champs

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 :

  • IDCelebrant (notez la majuscule qui suit le préfixe ID)
  • DateExport

4 Modèles conceptuels des données

4.1 Gestion des foyers et des personnes

MCD de la gestion des foyers

4.2 Gestion des équipes

MCD de la gestion des équipes

4.3 Gestion des agendas

MCD de la gestion des agendas

4.4 Gestion des utilisateurs

MCD de la gestion des utilisateurs

4.5 Gestion des sorties paramétrables

MCD de la gestion des sorties paramétrables

Retour au sommaire du wiki des développeurs


Related

Paroiciel v.11: wikiDev

MongoDB Logo MongoDB