Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/10/2006, 08h50   #1
Invité régulier
 
Inscription : août 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 25
Points : 6
Points : 6
Par défaut relation reflexive ?

Bonjour,

j'ai le cas classique (pour les afficionados !) d'une relation reflexive sur une table article.
des articles peuvent être composés de plusieurs autres articles.
j'ai donc un numero pour chaque article qui est la cle primaire et également une cle étrangère article_numero + nom, designation...

est ce suffisant d'après vous pour gérer les articles simples et ceux composés de plusieurs articles ou dois je ajouter une table faisant la liaison ??
par ailleurs je ne vois pas tres bien comment créer un article et lui associé d'autres articles entrant ds sa composition.

je précise que je suis en stage en entreprise et que je suis donc débutant...

vous remerciant par avance pour toutes infos me faisant progresser.
mogur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 09h04   #2
Membre régulier
 
Avatar de jp_rennes
 
Inscription : mars 2006
Messages : 72
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : mars 2006
Messages : 72
Points : 83
Points : 83
Je me trompe peut-être, mais à ta place je créerai une nouvelle table.
par exemple une table
composition (id int auto increment not null, article int not null, compose int not null, primary key(id),foreign key(article) reference article(id),foreign key(compose) reference article(id))
Si un article est composé de trois articles tu insères donc trois lignes dans cette table
Et quand je voudrait connaître la composition d'un article se sera plus simple.
jp_rennes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 09h15   #3
Membre confirmé
 
Inscription : novembre 2004
Messages : 364
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 364
Points : 202
Points : 202
Je te conseil aussi de rajouter une autre table.

Car dans ton cas, par exemple si un article 1 est composé de l'article 2,3,4.
Sachant que tu auras numarticle comme identifiant de table article tu ne pourras pas faire

Code :
1
2
3
4
5
 
numarticle   ||   composé
     1       ||         2
     1       ||         3
     1       ||         4
Car sinon il y aura des doublons.

Au contraire si tu rajoutes une table est composé de, structuré de la manière suivante
EstComposéDe(numarticle,numcomposant,....)

Et en faisant une relation entre ta table Article et ta table EstcomposéDe par numarticle, tu pourras facilement connaitre tous les articles qui sont composants de ton composé.
tazmania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 09h26   #4
Invité régulier
 
Inscription : août 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 25
Points : 6
Points : 6
Merci beaucoup,

vous m'avez permis de me mettre sur la voix et je viens également de trouver cette info ds la faq merise :

http://merise.developpez.com/faq/?pa...LD_Reflexivite

je vais donc créer une seconde table dont deux cles etrangères formeront la cle primaire de ladite table --> c'est cette info qui me manquait en fait.

encore merci d'avoir pris le temps de me répondre
mogur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2006, 11h52   #5
Invité régulier
 
Inscription : août 2006
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 25
Points : 6
Points : 6
Après création de la table + test, ca fonctionne nickel !

et un ch'tit "résolu" ...
mogur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h03.


 
 
 
 
Partenaires

Hébergement Web