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élisation]Table liée à l'une ou l'autre table


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Points : 65
    Points
    65
    Par défaut [modélisation]Table liée à l'une ou l'autre table
    petit problème de conception de SGBD :

    J'ai les tables 'Salles', 'Personne', 'Stage' et 'Reservation'.
    En fait, une Salle peut etre réservée soit par une Personne, soit par un Stage. Comment transcrire cela en base de données.

    Pour l'instant, j'ai créé une table Réservation (nécessaire pour les dates de début et de fin de réservation). Cette table contient un champ idPersonne (0 ou 1) et un champ idStage (0 ou 1). Mais je trouve pas ca terrible, et j'aimerais savoit si y aurait une solution plus 'propre' pour exprimer la notion: "Table associée à l'une OU à l'autre table"

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Le but est effectivement d'éliminer les valeurs nulles au niveau logique (relationnel) et de rester dans le cadre du tiers exclu (SQL appréhende mal la logique ternaire).

    Une représentation possible parmi d'autres :

    - Une salle peut faire l'objet de plusieurs réservations.

    - Une réservation EST de type Stage (Reservation stage) ou Personne (Reservation_Personne).

    - Pour un stage donné, on peut réserver plusieurs salles.

    - De même, une personne peut réserver plusieurs salles.

    Dans le schéma en pièce jointe (Power AMC), la croix inscrite dans le demi-cercle symbolise l'exclusivité : une réservation est soit le fait d'un stage, soit d'une Personne. Le double trait sous la croix symbolise la totalité : il n'y a pas d'alternative (une réservation est nécessairement le fait d'un stage ou d'une personne).
    Images attachées Images attachées  
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

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

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. Réponses: 12
    Dernier message: 02/08/2012, 01h57
  3. language SQL - Copier une ligne dans autre table
    Par fxd dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/10/2005, 18h16
  4. copier une ligne dans une autre table
    Par BoeufBrocoli dans le forum SQL
    Réponses: 5
    Dernier message: 24/10/2003, 22h59
  5. [CR] Afficher un champs lié à un champs d'une autre table
    Par Madduck dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/09/2003, 11h48

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