Problème avec le modèle relationnel ( 4 tables)
Résolu/Fermé
missengland
Messages postés
5
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
19 novembre 2014
-
Modifié par missengland le 15/11/2014 à 00:26
missengland Messages postés 5 Date d'inscription vendredi 14 novembre 2014 Statut Membre Dernière intervention 19 novembre 2014 - 19 nov. 2014 à 22:03
missengland Messages postés 5 Date d'inscription vendredi 14 novembre 2014 Statut Membre Dernière intervention 19 novembre 2014 - 19 nov. 2014 à 22:03
A voir également:
- Problème avec le modèle relationnel ( 4 tables)
- Modèle organigramme word - Guide
- Tables des matières word - Guide
- Code gta 4 ps4 - Guide
- Iphone dernier modèle - Guide
3 réponses
Pitié pour tes lecteurs! On n'y voit rien avec ta vue d'écran. Mieux vaut envoyer un extrait de ta base via cjoint.com
Bonjour, et merci pour ton envoi,
D'abord avant de se lancer tête baissée, il est recommandé de savoir où on va, aussi je te recommande de lire ce qui se trouve ici à propos de Merise, méthode d'analyse de la problématique de mise en base de données d'une compilation d'informations ("http://www.commentcamarche.net/s/merise"). Cette lecture est indispensable.
2) J'ai cru comprendre que tu n'étais pas l'auteur des tables mais qu'on te demandait juste d'établir les relations. Dans ce cas, tu as bien vu qu'un client pouvait avoir plusieurs problèmes (Customer!CustomerId --> Problem!CustomerId). Par contre ta relation Problem!ProductId -- Product!ProductId est inversée; il faut que l'identifiant-Produit d'un problème ne se réfère qu'à un seul produit.
3) Quant à la 3ème liaison, il suffit d'avoir Problem!ProblemtId --> ProblemDetail!ProblemtId. Le même problème renvoyant à plusieurs DétailsDeProblèmes.
C'est tout. Il n'est pas interdit, au contraire, que les données d'une table renvoient à plusieurs tables. Ici on a :
Problem!ProblemtId --> ProblemDetail!ProblemtId et
Problem!ProductId --> Product!ProductId
Bonne suite, bon courage.
(Nota: Le sens de mes flèches indique Un -- > Plusieurs)
D'abord avant de se lancer tête baissée, il est recommandé de savoir où on va, aussi je te recommande de lire ce qui se trouve ici à propos de Merise, méthode d'analyse de la problématique de mise en base de données d'une compilation d'informations ("http://www.commentcamarche.net/s/merise"). Cette lecture est indispensable.
2) J'ai cru comprendre que tu n'étais pas l'auteur des tables mais qu'on te demandait juste d'établir les relations. Dans ce cas, tu as bien vu qu'un client pouvait avoir plusieurs problèmes (Customer!CustomerId --> Problem!CustomerId). Par contre ta relation Problem!ProductId -- Product!ProductId est inversée; il faut que l'identifiant-Produit d'un problème ne se réfère qu'à un seul produit.
3) Quant à la 3ème liaison, il suffit d'avoir Problem!ProblemtId --> ProblemDetail!ProblemtId. Le même problème renvoyant à plusieurs DétailsDeProblèmes.
C'est tout. Il n'est pas interdit, au contraire, que les données d'une table renvoient à plusieurs tables. Ici on a :
Problem!ProblemtId --> ProblemDetail!ProblemtId et
Problem!ProductId --> Product!ProductId
Bonne suite, bon courage.
(Nota: Le sens de mes flèches indique Un -- > Plusieurs)
missengland
Messages postés
5
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
19 novembre 2014
16 nov. 2014 à 16:27
16 nov. 2014 à 16:27
Bonjour,
Merci de ta reponse.
Je ne suis pas l'auteur des donnees mais des tables oui.
1) Je vais regarder
2) Oui un client peut avoir plusiseurs problemes.
Lorsqu il a un probleme avec un produit T par exemple, il appelle a une date et un jour precis et on cree un ID probleme (comme si c etait le num d une facture).
Ce que je n arrive pas a comprendre c est comment on peut retourner sur ce probleme ID et rajouter un nouvel enregistrement en indiquant la nouvelle plainte sur ce meme produit par le meme client ? Comme cela on aurra bien un meme problem ID pour un meilleur suivi du probleme en cours qui se resume en plusieurs enregistrements.
Par contre dans ce cas sur un meme probleme ID on aurait plusieurs fois le meme produit mais avec des plaintes qui evolues.
3) Donc le problemedetail_ID je le mets en autonumber dans la table problemedetail et pour la cle primaire de la table problem je mets les champs problem_ID + customer ID + produitID cest bien ca ?
base de donnes modif 1 : https://www.cjoint.com/?DKqqCAbU0Gc
problem design view : https://www.cjoint.com/?DKqqcFgW61u
problem detail design view : https://www.cjoint.com/?DKqqdvrYAtK
PS : (Desole pour l absence d accentuation)
Merci de ta reponse.
Je ne suis pas l'auteur des donnees mais des tables oui.
1) Je vais regarder
2) Oui un client peut avoir plusiseurs problemes.
Lorsqu il a un probleme avec un produit T par exemple, il appelle a une date et un jour precis et on cree un ID probleme (comme si c etait le num d une facture).
Ce que je n arrive pas a comprendre c est comment on peut retourner sur ce probleme ID et rajouter un nouvel enregistrement en indiquant la nouvelle plainte sur ce meme produit par le meme client ? Comme cela on aurra bien un meme problem ID pour un meilleur suivi du probleme en cours qui se resume en plusieurs enregistrements.
Par contre dans ce cas sur un meme probleme ID on aurait plusieurs fois le meme produit mais avec des plaintes qui evolues.
3) Donc le problemedetail_ID je le mets en autonumber dans la table problemedetail et pour la cle primaire de la table problem je mets les champs problem_ID + customer ID + produitID cest bien ca ?
base de donnes modif 1 : https://www.cjoint.com/?DKqqCAbU0Gc
problem design view : https://www.cjoint.com/?DKqqcFgW61u
problem detail design view : https://www.cjoint.com/?DKqqdvrYAtK
PS : (Desole pour l absence d accentuation)
ReBonjour,
C'est vrai que je n'avais pas regardé les 2 dernières lignes de ton précédent envoi tant cela me paraissait évident que les Identifiants dans chacune des tables étaient en AutoNumérique. Donc pour reprendre : Customer!CustomerId, Problem!ProblemId, ProblemDetail!ProblemDetailId, Product!ProductId doivent tous être NumeroAuto. Sinon on ne sera pas de quoi on parle, et cela présente l'avantage d'avoir la certitude qu'ils seront uniques. Il n'est absolument pas nécessaire d'avoir un index composé pour la table Problem puisqu'il y a un N°Auto pour Problem!ProblemId
"Ce que je n arrive pas a comprendre c est comment on peut retourner sur ce probleme ID et rajouter un nouvel enregistrement en indiquant la nouvelle plainte sur ce meme produit par le meme client ?" Tu ne t'occupe pas de ça pour le moment, parce que ce n'est pas la question posée ici. La seule chose importante ici est de comprendre et indiquer en terme de liaisons que le même client peut avoir plusieurs problèmes, que chaque problème ne se rapporte qu'à un seul produit, et enfin que chaque problème peut renvoyer à plusieurs demandes, ou une demande avec plusieurs relances.
2) Pour ce qui est des liaisons, tu n'as pas tenu compte de mes remarques, il faut qu'on ait: (je suis obligé de ne mettre que les tables les unes après les autres parce qu'il n'est pas possible de marquer les liaisons en diagonale)
Customer --> Problem --> DetailProblem
________________ --> Product
Il faut inverser tes 2 liaisons Problem -> ProblemDetail et Product-> Problem
Bonne suite.
C'est vrai que je n'avais pas regardé les 2 dernières lignes de ton précédent envoi tant cela me paraissait évident que les Identifiants dans chacune des tables étaient en AutoNumérique. Donc pour reprendre : Customer!CustomerId, Problem!ProblemId, ProblemDetail!ProblemDetailId, Product!ProductId doivent tous être NumeroAuto. Sinon on ne sera pas de quoi on parle, et cela présente l'avantage d'avoir la certitude qu'ils seront uniques. Il n'est absolument pas nécessaire d'avoir un index composé pour la table Problem puisqu'il y a un N°Auto pour Problem!ProblemId
"Ce que je n arrive pas a comprendre c est comment on peut retourner sur ce probleme ID et rajouter un nouvel enregistrement en indiquant la nouvelle plainte sur ce meme produit par le meme client ?" Tu ne t'occupe pas de ça pour le moment, parce que ce n'est pas la question posée ici. La seule chose importante ici est de comprendre et indiquer en terme de liaisons que le même client peut avoir plusieurs problèmes, que chaque problème ne se rapporte qu'à un seul produit, et enfin que chaque problème peut renvoyer à plusieurs demandes, ou une demande avec plusieurs relances.
2) Pour ce qui est des liaisons, tu n'as pas tenu compte de mes remarques, il faut qu'on ait: (je suis obligé de ne mettre que les tables les unes après les autres parce qu'il n'est pas possible de marquer les liaisons en diagonale)
Customer --> Problem --> DetailProblem
________________ --> Product
Il faut inverser tes 2 liaisons Problem -> ProblemDetail et Product-> Problem
Bonne suite.
missengland
Messages postés
5
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
19 novembre 2014
19 nov. 2014 à 22:03
19 nov. 2014 à 22:03
Merci pour ces précieux conseils, et pour avoir pris de votre temps pour comprendre ma demande. Je vais enfin pouvoir aller plus loin dans mon TD.
Bonne continuation à vous
Bonne continuation à vous
15 nov. 2014 à 19:40
15 nov. 2014 à 21:27
base de donnees => https://www.cjoint.com/?DKpvCSMGf1a
table problem => https://www.cjoint.com/?DKpvD11woep
table problem detail => https://www.cjoint.com/?DKpvEZbBZXy
table produit => https://www.cjoint.com/?DKpvFPYkpLV
table client => https://www.cjoint.com/?DKpvGHifNey