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

Modélisation Discussion :

[A-03] Conception relation entre les tables


Sujet :

Modélisation

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut [A-03] Conception relation entre les tables
    Bonjour,
    j'ai créé une base de donnée concernant des tâches à réaliser.

    L'environnement est le suivant :

    Un client est concerné par un ou plusieurs dossiers.
    Un dossier contient une ou plusieurs tâches.
    Un technicien s'occupe de 0 à plusieurs dossiers, et il s'occupe de 0 ou plusieurs tâches.
    Chaque dossier et chaque tâche doivent avoir une date de création et une date de fin.

    Voilà le modèle logique de donnée que j'ai essayé de faire :

    Table_Dossier( ID_Dossier, Libellé_Dossier, Etat_Dossier, Ref_Client)
    Table_Tâche( ID_Tâche, Libellé_Tâche, Etat_Tâche, Ref_Dossier)
    Table_Client(ID_Client, Nom, prenom...)
    Table_Technicien(ID_Technicien, Nom_Technicien, Mail_Technicien)
    Table_Jointure(ID_Dossier, ID_Tâche, ID_Technicien, Date_Début, Date_fin)

    Et les relations :



    Le problème étant qu'un technicien doit pouvoir agir sur un dossier et une tâche à une date donnée, et que les tâches doivent être liées à un dossier,
    et qu'étant débutant je ne suis pas vraiment confiant sur la table jointure que j'ai créé.
    Que pensez vous de ces tables et relations ? Merci

  2. #2
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Je ne comprends pas quelque chose.
    Pourquoi une référence du dossier dans les tâches?

    Pourquoi ne pas mettre les tâches dans le dossier?

    On aurait alors une table dossier en relation avec un client et une tâche.

    Pierre

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Bonjour, merci de votre aide.

    Un dossier contenant plusieurs tâches, je me suis dit que si je met dans une table dossier une référence à une tâche alors je ne peux accéder qu'à une seule tâche à la fois.
    Mais que si je met une référence à un dossier dans une table tâche, un dossier va correspondre à plusieurs tâche.

    Hors je débute et j'ai sans doute une mauvaise interprétation des jointures.

    J'espère ne pas dire de bêtise mais si votre interprétation des jointure est bonne votre exemple est aussi faux concernant les clients.
    Ne devrais je pas mettre une référence au dossier dans la table client et non une référence au client dans la table dossier puisque un dossier concerne un seul client et qu'un client peut être concerné par un ou plusieurs dossier ?

    J'aimerais savoir également dans votre table jointure, si celle-ci est créée uniquement pour y incorporer les dates de création et de fermeture ?

    Voici les nouvelles relations, est ce que je suis obligé de faire le lien entre la table technicien et la table tâche, ou puis je passer par la table dossier comme vous semblez le montrer ? (que de questions j'en suis désolé)



    Dernière question , la table jointure est-elle nécessaire ou je peux mettre des propriétés de date dans les tables Tâche et Dossier et relier les tables technicien et dossier d'une manière différente ?

    Merci encore.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour Drone,
    Tes tables me semblent correctes; mais d'après ce que je comprends les tâches d'un même dossier peuvent être affectées à plusieurs techniciens.
    Concernant les relations, je pense que tu as interverti les tables table_jointure et table_tâches. La table Table_tâches est en relation avec la table Table_Dossiers.

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Bonjour Ilank, oui les tâches d'un même dossier peuvent être affectées à plusieurs techniciens, mais un seul à la fois.

    Je n'ai pas compris lorsque tu dis que j'ai intervertis la table jointure avec la table tâche mais j'ai modifié les relations et les envoyé quasi en même temps que tu as envoyé ta réponse.
    Merci.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Oui, je viens de voir et c'est ce que je disais; mettre en relation la table des dossiers avec la table des tâches.

    Par contre, tu dis qu'un technicien peut s'occuper d'un dossier, faut-il comprendre que toutes les tâches d'un dossier peuvent lui être affectées ou qu'un technicien peut s'occuper d'un dossier sans qu'une tâche de ce même dossier ne lui soit attribuée ?
    Si seules les tâches sont affectées aux techniciens, insère dans la table des tâches une référence au technicien qui en a la charge ainsi que les dates de début et de fin et supprime la table de jointure.

  7. #7
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Un technicien créé un dossier, créé des tâches.
    Il peut les écrire mais c'est possible que ce soit d'autres techniciens qui les réalisent.
    Mais je pense sérieusement à m'orienter sur l'idée de créer une tâche ouverture de dossier et une tâche fermeture, et juste de savoir qui à réaliser telle tâche et de faire comme tu dis une seule référence au technicien dans une tâches.

    Alors lequel de ces MLD serait bon ?

    Table_Dossier( ID_Dossier, Libellé_Dossier, Etat_Dossier, Ref_Tâche)
    Table_Tâche( ID_Tâche, Libellé_Tâche, Etat_Tâche, Date_Début, Date_Fin)
    Table_Client(ID_Client, Nom_Client, Prenom_Client,..., Ref_Dossier)
    Table_Technicien(ID_Technicien, Nom_Technicien, Mail_Technicien, Ref_Tâche)

    Ou alors si mon interprétations initial des jointure est correcte je ferais ce MLD :

    Table_Dossier( ID_Dossier, Libellé_Dossier, Etat_Dossier, Ref_Client)
    Table_Tâche( ID_Tâche, Libellé_Tâche, Etat_Tâche, Date_Début, Date_Fin, Ref_Technicien, Ref_Dossier)
    Table_Client(ID_Client, Nom_Client, Prenom_Client,...)
    Table_Technicien(ID_Technicien, Nom_Technicien, Mail_Technicien)

    Merci.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Je vois la deuxième solution.

  9. #9
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Moi aussi je suis pour le deuxième MLD.
    Ça m'est paru évident après mettre imaginer qu' une référence à une tâche dans la table technicien me fait créer à tord un ID de technicien pour une seule tâche.

    Mais c'est vrais que suivant les situations, les liens entre des tables peuvent prêter à confusion.

    Je suis maintenant satisfait de mon MLD.

    Merci à ilank et à pier.antoine, je clos le sujet.

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

Discussions similaires

  1. Conception relation entre les tables
    Par smiraureloff dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 27/09/2007, 16h54
  2. [Conception]problème de relation entre les tables
    Par vaness76 dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/04/2007, 11h32
  3. Pourquoi les relations entre les tables
    Par ghita269 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/12/2005, 11h54
  4. Relation entre les tables
    Par mzt.insat dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/11/2005, 08h17
  5. Relation entre les tables
    Par adelyx dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/04/2005, 23h06

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