IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Modéliser un "OU logique" [Modèle Relationnel]


Sujet :

Schéma

  1. #1
    Membre du Club Avatar de bambou
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 192
    Points : 69
    Points
    69
    Par défaut Modéliser un "OU logique"
    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.

  2. #2
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Tu peux, en base, ajouter deux tables PermanenceDate et PermanencePeriodicité. Chacune de ces tables possèdera les champs dont tu as besoin (une date pour la première, une période pour la seconde) et un identifiant. La Permanence possède un champs d'id vers l'une ou l'autre de ces tables.

    En écrivant cela je me rend compte que le problème risque de revenir, donc tu peux faire à l'inverse, c'est à dire faire porter une clef étrangere à PermDate et PermPeriode référancant une Permanence. Des triggers peuvent assurer si nécessaire l'unicité (une perm ne peut etre à une date fixe et periodique)

    Bon courage !
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  3. #3
    Membre du Club Avatar de bambou
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 192
    Points : 69
    Points
    69
    Par défaut
    ok, après réflexion, je crois que je vais faire simple, une seule table qui va regrouper les deux et garder des champs vides, tant pis. c'est surement pas très propre mais dans l'environnement dans lequel l'application va se placer ça ne posera pas de problème

    merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo