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

Administration MySQL Discussion :

Conception base de données


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Par défaut Conception base de données
    Bonjour je suis confronté à un problème de conception et je me demande quel est le meilleur moyen de le résoudre.
    J'ai une DB dans laquelle je modélise un objet qu'on appel "rapport" ce rapport utilise plusieurs tables pour être créé, dans l'utilisation métier de ce rapport il a deux états :

    1 état validé ou l'utilisateur final peut utiliser ce rapport car il est validé par son propriétaire

    1 etat où il est en modification, mais dans cet état le rapport d'origine (celui qui sert de base a la modification) doit toujours être actif avec les données d'origines, pendant que le propriétaire modifie ce rapport, jusqu'a ce qu'il soit validé puis remplace le rapport d'origine.

    Je me suis donc dit que je devais faire une table "tampon" un clone du rapport d'origine que je laisserais libre à la modification (pdt ce temps le rapport d'origine est toujours utilisable dans l'état) jusqu'a ce qu'il soit validé, alors je copie l'ensemble des données modifiées dans le rapport d'origine et j'incrémente ma version. le rapport est donc disponible avec les nouvelles données.

    Mais j'ai pas mal de relation oneToMany et manyToOne dans les tables qui concerne ce rapport, alors la table tampon peut du coup être tres redondante car elle va devoir entretenir les liens avec toutes les relations de la table rapport.

    je me demande si c'est la bonne solution? ou si je ne devrais pas m'orienter vers un systeme de "versionning" ou seul les data modifiées seraient enregistrées dans une table qui contiendrait uniquement un lien avec la table a modifié, le champ de la table, et la version. du style

    id | nom de la table | champ | data | version
    1 | rapport | activite| 12 | 1
    2 | pieces | design|montre| 1


    puis lorsque le rapport est validé, les data de ma table "versionning" sont persisté dans les tables d'origines, donc je n'ai plus de système de "clone"

    Vos lumières sont les bien venues , je suis un peu pommé ;-)
    merci et bonne année

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 153
    Par défaut
    Salut bruno.rotrou.

    Au lieu de l'état en "modification", j'aurai plutôt dit en "construction".
    Au lieu de parler d'état d'origine ou validé ou je ne sais quoi d'autre, j'indiquerai plutôt un numéro de version.
    Seul la dernière version active serait le bon rapport, celui que vous nommez "origine".

    Mais il faut s'y retrouver et donc il faut gérer aussi des liens entre vos différents rapports.
    Un pointeur allant du rapport fils vers le rapport père est nécessaire.
    Ainsi vous pouvez avoir plusieurs rapports fils qui sont issues du rapport père (origine).

    jusqu'à ce qu'il soit validé, alors je copie l'ensemble des données modifiées dans le rapport d'origine et j'incrémente ma version. le rapport est donc disponible avec les nouvelles données.
    Je pense qu'il est dangereux de venir écraser la version d'origine, même si c'est votre intention.

    ou si je ne devrais pas m'orienter vers un systeme de "versionning"
    C'est une gestion de version que vous faites.
    Mais comme vous devez gérer aussi une relation père ayant plusieurs fils, c'est aussi un héritage.

    Hormis la relation fils vers père, avez-vous aussi des relatifs entre fils ?

    @+

Discussions similaires

  1. [conception] Base de données sur le football
    Par Kakine dans le forum Modélisation
    Réponses: 25
    Dernier message: 06/01/2007, 03h27
  2. [Conception] Base de donnée + Livre d'or
    Par linkinmimil dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/07/2006, 15h54
  3. conception base de données
    Par LaFik dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 07/06/2006, 18h04
  4. [Conception] base de données pour sport
    Par peach dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/10/2005, 16h21
  5. conception base de données
    Par aaronw dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 04/05/2005, 13h39

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