Problème de conception

sophiabibich Messages postés 16 Statut Membre -  
sophiabibich Messages postés 16 Statut Membre -
Bonjour,
la base de données contient 4 tables :

tale client (code_client,raison_sociale,fixe,adresse,ville,pays)

tablecontact(nom_contact,prénom,fonction,email,téléphone,
fonction_dans_lékipe_projet)

table produit(code_produit,editeur,date_installation,version os,version sgbd,niveau_patch,nbr_licence_initiale,garantie,version_pdt,téléphone(comme clé étrangère ce tel est la clé primaire de la table conatct))

table possède(elle contient la clé primaire de la table client(code_client) et celle de la table produit(code_produit)

lors de l'exécution du code le problème qui se pose est que quand deux clients(sociétés) achétent le même produit et qu'on désire savoir qui est le contact dans cette société chargé de ce produit on trouve le même contact pour deux clients(sociétés) différents.

les relations entre les tables :

table client et table produit sont reliés par une relation possède

table contact et table produit par une relation se charge

les clients sont des sociétés et lors de l'exécution du code nous entrons un code_client et il nous renvoie directement vers une fiche client qui contient toutes les coordonnées de ce client ,cette fiche client elle même contient une jlist qui affiche la liste des produits de ce client quand on clique sur un des produits il nous renvoie vers la fiche produit qui contient les informations sur le produit et qui contient entre autres un label nommé contact chargé de ce produit et quand on clique sur plus de détails de ce contact l'application nous renvoie vers la fiche contact où il y a toutes les informations concernant le contact c'est là où le problème se pose car lorsqu'on a deux clients différents avec le même produit on a lors de l'exécution le même contact chargé de ce produit.

N.B: le contact est la personne chargé du produit que va acheté le client ce contact appartient au client(société) qui a acheté le produit.

Si vous avez des solutions SVP elles seront les bienvenues
je sais que c'est un problème au niveau de la conception mais je n'arrive pas à voir lequel.

MERCI

A voir également:

3 réponses

varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
Bonjour,

Cela est normal:

Si le produit a un ou plusieurs client, et un contact, alors lorsque tu cherchera le contact pour deux client différent qui ont acheter le même produit, cela te retournera le même client.

Il te faudrait une ligne spécifique comportant le client, le produit et le nom du contact dans une table afin de pouvoir réaliser ce que tu veut.
0
sophiabibich Messages postés 16 Statut Membre
 
je comprends de ce que tu a dis qu'il faut ajouter une autre table qui contient le code_client,le code_produit et le contact chargé de ce produit
mais quel relation y aura -t-il entre cette nouvelle table et les autres tables qui existent déjà dans la bdd
merci
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
en faite je te proposais plutot de changer la disposition de tes relations: tu as tes trois tables client, produit, contact, et tu en rajoute une qui aura la fonctionnalité a la fois de se charge et possède et qui aura trois clé etrangere: une qui pointe sur l'ID client, une sur l'ID produit et une sur l'ID contact.
0
sophiabibich Messages postés 16 Statut Membre
 
donc on ajoute la 3ème clé étrangère dans notre table possède
mais dans la table produit il y a déjà un champ code_contact(tel) qui est une clé étrangère de la table contact pour pouvoir relier ces deux tables
est ce que ce champ dans la table produit doit être supprimé?

et au niveau de la requête sql qui est dans mon fichier java qu'est ce qui va changer?
car avant j'avais
String req="select * from contact where Téléphone='"+tel+"'";
pour pouvoir accéder à la fiche contact à partir de son code_contact(tel) qui se trouve dans la table produit.
merci
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
en gros tu supprime de la table produit la clé étrangère vers contact et tu doit avoir au final 3 table "normal" avec juste une clé primaire et une table qui contient 3 clés étrangères.

Au niveau de ta requête, vu que ta table requête ne va pas changer, tu ne devrait rien avoir à changer.

par contre pour résoudre ton problème, lorsque tu voudra le contact pour un client qui a tel produit, tu recherchera le contact dans ta table avec les 3 clés primaire en disant que le produit est bidule et le client machin. Tu aura ainsi l'ID du contact et tu pourras rechercher ses info a partir de son ID
0
sophiabibich Messages postés 16 Statut Membre
 
d'accord merci beaucoup
nous allons essayer cette solution merci
0