Bonjour,
Je suis en train de concevoir un application et je travail actuelement sur le modèle relationnel de ma base de données (MySQL).
Voici le contexte :
Je dois gérer des permanences.
- Un utilisateur à une ou plusieurs permanences
- Les permanences durent une journée au maximum
- Elles ont un lieu
- Leurs fréquences/date diffèrent selon les utilisateurs
C'est ce dernier point qui me pose problème.
J'ai crée une table PermanencePlace qui contient les informations du lieu de la permanence.
Une seconde table, Permanence, contient les information d'une permanence spécifique à un utilisateur. Cette table a donc une clé étrangère qui la relie à son utilisateur. Elle possède deux attributs : beginTime et endTime pour enregistrer l'heure de début et l'heure de fin de la permanence.
Reste à modéliser la fréquence/date. Celle-ci n'est pas toujours la meme selon les utilisateurs.
Une permanence peut être pontuelle ou répétitive, donc elle peut avoir une date fixe ou une fréquence. Voici quelques exemple de fréquence possible :
- les 1er et 3eme jeudi du mois
- le 15 de chaque mois sauf juillet et aout
- tous les mardi
J'ai donc un OU logique à modéliser ici : ma permanence peut-être ponctuelle OU répétitive et dans le cas d'une permanence répétitive elle peut se répéter tous les mois OU toutes les semaines..Etc
Je vois bien une façon de faire mais ça me parrait pas trés propre :
Dans ma classe Permanance j'ai un bouléen "ponctuelle" par exemple qui serait à true si la permanence concerne une date fixe et false si la date est répétitive. Dans la meme table j'ai un champs date prévu pour enregistrer la date fixe et d'autres (ou des références vers d'autres tables) pour les dates répétitives.
Mais bon...c'est un peu tout moche, il y aura forcement des champs qui vont rester vide, des testes inutiles à faire pour vérifier dans quelle cas on se trouve...
Avec un modèle UML, j'aurais surment quelque chose comme une classe abstraite PermanenceDate des des classes filles PermanenceDateFixe, PermanenceDateMonthly, PermanenceDateWeekly..etc
Voila...je seche un peu sur la modélisation de tout ça, c'est pas trop mon fort...
merci pour votre aide.
Partager