Modèle relationnel probleme
fifty-theking
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
blux Messages postés 27141 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27141 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai fait un modèle relationnel :
CLIENT (CodeClient, NomClient, PrenomClient, AdresseClient, VilleClient, CodePostalCLient )
Clé primaire : CodeClient
PRODUIT (ReferenceProduit, DesignationProduit, PUTTCClient )
Clé primaire : ReferenceProduit
COMMANDE (NumCommande, CodeClient, DateCommande )
Clé primaire : NumCommande
Clé étrangère : CodeClient
CONTENIR : ( CodeProduit, NumCommande, QuantiteeCommande )
Clé primaire : CodeProduit
Voila je pense qu'il est normaliser mais j'ai un problème lors des saisies dans la table contenir, en effet j'ai 2 fois a mettre le meme produit mais ce n'est pas le meme client. Sa fait donc un doublon. Comment puis-je éviter ce doublon ? (faut que le modèle relationnel reste cohérent)
J'utilise access 2007.
Merci de m'aider
J'ai fait un modèle relationnel :
CLIENT (CodeClient, NomClient, PrenomClient, AdresseClient, VilleClient, CodePostalCLient )
Clé primaire : CodeClient
PRODUIT (ReferenceProduit, DesignationProduit, PUTTCClient )
Clé primaire : ReferenceProduit
COMMANDE (NumCommande, CodeClient, DateCommande )
Clé primaire : NumCommande
Clé étrangère : CodeClient
CONTENIR : ( CodeProduit, NumCommande, QuantiteeCommande )
Clé primaire : CodeProduit
Voila je pense qu'il est normaliser mais j'ai un problème lors des saisies dans la table contenir, en effet j'ai 2 fois a mettre le meme produit mais ce n'est pas le meme client. Sa fait donc un doublon. Comment puis-je éviter ce doublon ? (faut que le modèle relationnel reste cohérent)
J'utilise access 2007.
Merci de m'aider
A voir également:
- Modèle relationnel probleme
- Modèle de webcam - Guide
- Modèle organigramme word - Guide
- Modèle de style word - Guide
- Iphone dernier modèle - Guide
- Modèle feuille de pointage excel gratuit - Télécharger - Tableur
11 réponses
Salut,
la clé primaire de la table 'contenir' doit être la concaténation des champs Codeproduit ET NumCommande...
Ainsi tu pourras avoir le même produit mais dans deux commandes différentes. Ton modèle de données sera intègre, dans ce cas.
Par contre, je ne sais pas quelles relations tu as créées, ça peut gêner.
la clé primaire de la table 'contenir' doit être la concaténation des champs Codeproduit ET NumCommande...
Ainsi tu pourras avoir le même produit mais dans deux commandes différentes. Ton modèle de données sera intègre, dans ce cas.
Par contre, je ne sais pas quelles relations tu as créées, ça peut gêner.
On sélectionne les deux champs en même temps dans la table en mode création et on clique sur la petite clé dans la barre de menus jusqu'à ce que les deux champs aient une petite icône de clé.
merci de ton aide blux.
Voici mes relations :
http://www.noelshack.com/up/aac/relation-1eed7cdc87.jpg
Voici mes relations :
http://www.noelshack.com/up/aac/relation-1eed7cdc87.jpg
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tu ne devrais pas avoir de relation entre client et produit, mais plutôt entre client et commande. De plus, toutes tes relations devraient être de type 'un à plusieurs'...
Pas besoin, si tu fais ce que je dis, ACCESS s'adaptera automatiquement.
Supprimer la relation entre client et produit et création d'une relation entre client et commande. Si les champs sont les mêmes dans chaque table, alors ACCESS les reconnaîtra.
Supprimer la relation entre client et produit et création d'une relation entre client et commande. Si les champs sont les mêmes dans chaque table, alors ACCESS les reconnaîtra.
voila j'ai effectué la modification : http://www.noelshack.com/
En fait les relations servent a quoi ?
En fait les relations servent a quoi ?
Les relations servent à 'relier' les informations les unes aux autres.
Avec le modèle que tu as, il est facile de savoir qui a commandé quoi, une simple requête avec une jointure (action de faire jouer les relations entre tables) et le tour est joué.
En passant, les relations que tu as devraient toutes être du type 1 à plusieurs.
Avec le modèle que tu as, il est facile de savoir qui a commandé quoi, une simple requête avec une jointure (action de faire jouer les relations entre tables) et le tour est joué.
En passant, les relations que tu as devraient toutes être du type 1 à plusieurs.
merci blux, mais je ne comprend pas quand vous dites "les relations que tu as devraient toutes être du type 1 à plusieurs. "
J'ai mal relié ?
J'ai mal relié ?
Tu as bien relié, mais il faut mettre le type de relation à '1 à plusieurs'...
Double-clic sur le trait de relation pour faire cette modif.
Et ça aurait été bien de mettre CodeProduit comme clé primaire de la table produit au lieu de ReferenceProduit (c'est juste un renommage de champ), ou alors modifier le nom du champ de la table commande pour le mettre à 'ReferenceProduit' au lieu de CodeProduit.
Double-clic sur le trait de relation pour faire cette modif.
Et ça aurait été bien de mettre CodeProduit comme clé primaire de la table produit au lieu de ReferenceProduit (c'est juste un renommage de champ), ou alors modifier le nom du champ de la table commande pour le mettre à 'ReferenceProduit' au lieu de CodeProduit.