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 :

Historisation totale d'une relation 1,N


Sujet :

Schéma

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Points : 41
    Points
    41
    Par défaut Historisation totale d'une relation 1,N
    Classiquement pour gérer l’historisation en 1,N on fait comme dans cette exemple :

    ENFANT
    (1,1)
    |
    [a pour tuteur ] - date d'affectation
    |
    (1,n)
    TUTEUR

    On crée une 3eme entité H_ENFANT_TUTEUR :
    - Id_enfanrt (PK)
    - Id_tuteur
    - Date_affectation (PK)

    Sur mon projet (Datawarehouse façon Inmon, et pas Kimball ;-) on a cette problématique bien sûr de la relation 1,N historisée mais en plus les entités Enfant et Tuteur sont elles même historisées !!! On stocke en fait des photos de l'enfant et du tuteur ... chacune a une période de validité formée de 2 dates.

    Enfant
    ------
    Id_enfant (pk)
    nom
    date_debut_val (pk)
    date_fin_val

    idem pour le tuteur

    Si je reste comme ça, avec une entité entre les deux je vais avoir une base très difficilement exploitable ... 3 historiques déconnectés, qui risquent de se chevaucher ... et les interrogation a date doive se faire avec 3 critère between sur chacune des 3 tables.

    Je réfléchis donc a une autre modélisation, plus exploitable avec des surrogate key. rappel : c'est sensé être une base normalisée (c'est le socle 3NF d'un datawarehouse en fait). Au chargement une clé technique est calculée pour chaque photo de l'enfant et le tuteur. A chaque insertion d'une nouvelle ligne d'historique dans les 2 entités, j'insère aussi la correspondance dans l'asso intermediaire et ferme la correspondance précédente. J'obtiens ainsi un ensemble beaucoup plus exploitable car joignable facilement et parfaitement sur les surrogate key ...

    Enfant
    ------
    sk_enfant (ak)
    Id_enfant (pk)
    nom
    date_debut_val (pk)
    date_fin_val

    H_Enfant_Tuteur
    ------
    sk_enfant (ak)
    sk_tuteur(ak)
    date_debut_val (pk)
    date_fin_val

    Tuteur
    ------
    sk_tuteur(ak)
    Id_tuteur(pk)
    nom
    date_debut_val (pk)
    date_fin_val

    Qu'en pensez vous ?
    Que dit la regle de l'art sur l'historisation totale en 3NF ?

    Merci (j'espere que tout le monde me suis ;-)

  2. #2
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 065
    Points
    2 065
    Par défaut
    Bonjour Jeff.p18,

    L'historisation a été traitée plusieurs fois dans ce forum. Cherche les discussions au moyen de mots-clés "historisation", "historique", etc.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

Discussions similaires

  1. comment changer le type d'une relation ?
    Par mitapi dans le forum Access
    Réponses: 5
    Dernier message: 21/05/2007, 10h29
  2. Mettre une relation 1,1 entre 2 tables
    Par borgfabr dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/05/2005, 17h20
  3. Exploitation d'une table possédant une relation recursive
    Par VincentR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/08/2004, 11h07
  4. [Mapping] Structure d'une relation
    Par k4eve dans le forum Hibernate
    Réponses: 6
    Dernier message: 27/04/2004, 11h19

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