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 :

Historiser deux entités et leurs relations [MCD]


Sujet :

Schéma

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut Historiser deux entités et leurs relations
    Bonjour!
    Dans une autre discussion je suis tombé sur ce schéma de Nanci :


    Citation Envoyé par Nanci
    La question relève de la problèmatique de l'historisation, déjà évoquée il y a quelque temps sur ce site.

    Au niveau du MCD , l'historisation se note simplement par un (H) au niveau soit de l'entité (pour historiser la totalité de l'entité), soit d'une propriété (pour historiser seulement les évolutions des valeurs de cette propriété).


    La transformation en MLD relationnel est alors la suivante (automatique sur certains outils comme Win'Design)

    Je me demandais comment il serait possible de modéliser l'historisation non seulement de l'entité comme ci-dessus mais aussi sa relation avec une autre et la table résultant de l'association ( c'est à dire l'historisation de tout le schéma ci-joint ).
    Cette historisation se produit de façon reguliere afin de conserver une trace du planning.
    Merci beaucoup de votre aide (qui m'a déja été très utile!)
    Images attachées Images attachées  

  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
    Bonjour Fayred,

    Je n’ai pas eu d’écho à la réponse que je vous avais faite concernant votre message "planning, dates et horaires"...

    Bref. Concernant l’historisation des relations, les principes sont les suivants si l’on fait référence au Modèle Relationnel de Données :

    Supposons que vous ayez une table Personne et une table Entreprise, avec les règles suivantes :

    Une entreprise emploie de 0 à N personnes.
    Une personne est employée dans une et une seule entreprise.

    Si l’on ne tient pas compte de l’aspect temporel des choses, les tables sont les suivantes (clés primaires soulignées, clés étrangères en italiques) :

    Entreprise (EntId, RaisonSociale, ...)

    Personne (PsnId, Nom, DateEmbauche, EntId, ...)

    Si l’on tient à conserver la trace du passage de la personne p dans des entreprises successives, on doit mettre en œuvre une table à cet effet :

    Historique (PsnId, Nom, DateEmbaucheHisto, DateDemission, EntId)

    D’où le MLD :




    Et le MCD au format entité/relation :



    Ou au format Merise (PowerAMC, je n’ai pas Win’Design) :




    Si la personne peut être employée simultanément dans plusieurs entreprises, les tables sont à aménager. Le MLD devient le suivant :




    et le MCD au format entité/relation :



    ou au format Merise (toujours PowerAMC) :




    Pour simplifier les manipulations, le Modèle Relationnel de Données suggère d’utiliser le type Intervalle (qui comporte un début et une fin) plutôt que le type Date pour l’exercice ci-dessus.
    Il y a d’autres façons de procéder, maintenant à vous de voir si ce qui précède vous convient.

    N.B. J'ajoute ici les images qui ont disparu du message de Fayred qui cite Nanci :

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

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Merci beaucoup pour ce descriptif tres complet!!
    Avant de répondre j'ai préféré modéliser et pour l'instant le résultat est satisfaisant!
    Je reviendrai au besoin sur ce sujet si je rencontre de nouveaux problèmes!!
    Merci vraiment beaucoup beaucoup!

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

Discussions similaires

  1. [2.x] Relation entre deux entités intermédiaires
    Par blugeen dans le forum Symfony
    Réponses: 1
    Dernier message: 16/11/2014, 20h41
  2. [2.x] Symfony : relation entre deux entités
    Par rani20 dans le forum Symfony
    Réponses: 7
    Dernier message: 25/12/2011, 22h01
  3. [MCD] 5 relations entre deux entités : possible ?
    Par feugana1 dans le forum Schéma
    Réponses: 2
    Dernier message: 14/09/2010, 20h35
  4. [MCD] Deux relations pour deux entités
    Par glen1789 dans le forum Schéma
    Réponses: 3
    Dernier message: 03/11/2009, 23h07
  5. Attribut dans une relation entre deux entités
    Par garzouille dans le forum Django
    Réponses: 1
    Dernier message: 08/07/2008, 10h16

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