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 :

Schéma gestion des versions


Sujet :

Schéma

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Schéma gestion des versions
    Bonjour,
    Je vous explique mon problème: je veux faire une sorte de bugtracker pour nos produits, mais je ne sais pas comment gérer les versions, afin qu'elles soient facilement sélectionnables via mysql.
    Genre ya un bug X qui affecte monproduit 1.0 à 2.1.
    Quelle structure de base de données me conseillez-vous pour les versions? (il y a une table bug, et une table produit)
    En fait je devrai pouvoir sélectionner facilement les bugs des produits d'un client.
    Si celui-ci me dit "j'ai la version 1.5 de monproduit", je voudrais pouvoir sélectionner tous les bugs de cette version. Certains produits ont des branches différentes du genre 1.0a, 2b, etc..
    Pas possible de mettre toutes les versions touchées par un bug, de même on a pas envie de stocker dans une autre table toutes les versions existantes.
    On pensait faire des regexp, comme par exemple stocker un regexp (ex: 1.(0-9){1,5}) dans chaque bug, et quand on veut voir les bugs affectant la version 1.5 de monproduit, on sélectionne tous les bugs du produit + le regexp contenu dans le bug, et on compare la version avec le regexp directement dans le code. Il y a peut-être plus rapide, mais c'est là notre idée pour le moment.
    Selon vous ya t-il une meilleure solution?
    Merci d'avance!

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Citation Envoyé par kevinff Voir le message
    Pas possible de mettre toutes les versions touchées par un bug, de même on a pas envie de stocker dans une autre table toutes les versions existantes.
    Pourtant, du point de vue de la conception, une table des versions permet de s'assurer par ailleurs de l'intégrité référentielle (la version du produit enregistrée pour le client existe bien...)
    Si l'enregistrement de chaque version touchée par un bug ne vous semble pas idéale, elle est pourtant la plus efficace du piont de vue des requêtes à mettre en place pour une recherche.
    Une autre solution serait d'associer à un bug la version où il apparait et la dernière version avant correction. Le recherche portera alors sur un intervalle. Rien n'empêche par ailleurs de créer plusieurs plages d'erreurs si le bug a été incidemment corrigé sur une ou plusieurs versions...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Déjà, merci pour la réponse!
    En fait on veut absolument éviter l'option de la table de versions car on a deja beaucoup de produits à suivre, on peut pas suivre toutes les versions..
    Le problème pour les intervalles c'est que les types de versions sont différentes, il y a des numéros de versions numériques, alphanumériques etc..

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Règles de gestion :
    1) Un produit existe en 1 à plusieurs versions à différentes dates et une version appartient à un seul produit.
    2) Un bug est découvert à une certaine date sur une version d'un produit et une version d'un produit peut contenir plusieurs bugs.
    3) Un bug est résolu à une certaine date sur une version de produit.

    MCD :
    1) Version -1,1----Appartenir----1,n- Produit

    2) Bug -1,1----Découvrir----0,n- Version

    3) Bug -0,1----Résoudre----0,n- Version

    Tables :
    Produit (P_Id, P_Nom...)
    Version (V_Id, V_IdProduit, V_Numero, V_Date...)
    Bug (B_Id, B_IdVersionDecouverte, B_DateDecouverte, B_IdVersionResolution, B_DateResolution, B_Description...)

    Notes :
    - V_Numero n'est pas à prendre au sens numérique mais est du type VARCHAR.
    - Contrainte d'unicité sur le couple (V_IdProduit, V_Numero).
    - Contrainte sur l'appartenance des B_IdVersionDecouverte et B_IdVersionResolution au même produit.
    - La clé étrangère B_IdVersionResolution peut être nulle (ça ne va pas plaire à fsmrel mais tant pis ! ).

    j'ai la version 1.5 de monproduit", je voudrais pouvoir sélectionner tous les bugs de cette version.
    Il faut donc sélectionner tous les bugs découverts jusqu'à la date de la sortie de la version 1.5 et non résolus jusqu'à cette même date.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT B_Id, B_Description
    FROM Bug AS b
    INNER JOIN Version AS v ON b.B_IdVersionDecouverte = v.VId
      INNER JOIN Produit AS p ON v.VIdProduit = p.P_Id
    WHERE b.B_DateDecouverte < v.V_Date
      AND (
        B_DateResolution IS NULL
        OR B_DateResolution >= v.V_Date
      )
    Je suppose ici qu'un bug résolu le jour de la sortie d'une version, c'est trop tard pour prendre en compte la résolution dans cette version et ne sera corrigé que dans la version suivante.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Gestion des versions d'applications
    Par Yust dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/04/2007, 17h52
  2. [Utilisation] Gestion des versions archivées
    Par tatou42 dans le forum CVS
    Réponses: 2
    Dernier message: 14/12/2005, 15h10
  3. [applet] gestion des versions Java
    Par bigVinz dans le forum Applets
    Réponses: 1
    Dernier message: 09/12/2005, 15h06
  4. Gestion des versions d'objets dans les SGBD
    Par bennus dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/05/2005, 12h57
  5. Gestion des versions travail en équipe
    Par yanis97 dans le forum WinDev
    Réponses: 1
    Dernier message: 05/10/2004, 21h18

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