ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008
-
29 mars 2006 à 12:08
Imedbenmiled
Messages postés12Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention 2 juin 2008
-
30 mai 2008 à 19:44
Bonjour a tous,
Voici mon probleme, j'ai besoin de realiser une recursivité sur une table et j'aimerai savoir si cela est possible en foxpro.
En fait j'ai une table "article" avec une clé primaire et different champ. Ce que je voudrais faire c'est qu'un article puisse en contenir d'autres. Par exemple un pc est consideré comme un article, mais le pc est composé d'un processeur, d'une carte mere etc...
J'ai donc créer une autre table qui contient l'article pere et l'article fils. Le probleme d'est que je n'arrive pas a lier les differents les deux champ de cette table à la clé primaire article.
Pourriez vous m'aider ?
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008 29 mars 2006 à 13:41
Si je comprend bien ton exemple, tu as deux tables differentes pour la table pere et la table fils, hors dans mon cas la table pere et la table fils n'est qu'une seule et unique table car un element pere peu etre un element fils d'un autre article.
Une precison que j'avais oublié est qu'en fait un pere peu contenir un article fils en differente quantité : un pc contient un clavier, une souris, deux haut parleurs...
hors dans ma table un haut parleur n'est qu'un article et non un paire.
Le MCD de ce que je voudrais faire ressemble a ceci :
Je ne sais pas si ce que je veux faire te parais plus clair. En tout cas merci pour ta reponse
duck88
Mike Gagnon
Messages postés381Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention24 octobre 20132 29 mars 2006 à 14:26
Je ne vois pas ce que tu as posté, mais 'hors dans mon cas la table
pere et la table fils n'est qu'une seule et
unique table car un element pere peu etre un element fils d'un autre
article.' d'apres moi, a moins que je ty lise mal, est un mauvais
désign. Le concept des relations entre les éléments d'une application
est normallement pere-fils-petit fils (les trois éléments dans des
tables distinctes). Mais mettre de items père et fils dans un seule
table va à l'encontre du design relationnel.
Un concept normal (d'après moi) serait un design du type Kit.
1. Un item dans la table père (dans ce cas-ci un ordinateur)
2. Une deuxieme table qui contient les éléments qui constitue
l'ordinateur (ou les options possible qu'ordinateur peut avoir). Dans
une table fils.
3. Si certains éléments de la table fils ont des sous-éléments (comme
un haut-parleur peut avoir quelques pièces qui le compose) alors la ont
utilise un autre table (table petit fils avec un lien secondaire
dans la table fils).
Ceci s'appele de la normalisation de base de donnée.
Mais pour ce qui est du concept 'la table père peut contenir des items fils' je ne te suis pas.
ducker88
Messages postés277Date d'inscriptionlundi 9 février 2004StatutMembreDernière intervention 4 mai 2008 29 mars 2006 à 14:45
Je ne suis pas vraiment d'accord avec toi a moin d'avoir mal compris.
Car dans ton deuxieme post tu t'arrete au petite fils, mais si tu veux rajouter un arriere petit fils sans rajouter de table comment fait tu ?
Si tu l'on reste dans notre exemple et que tu veux mettre les hauts parleurs en elements pere pour pouvoir descendre à trois niveaux et que malgré tout les hauts parleurs sont quand meme des elements fils de l'ordinateur, n'a tu pas une redondance d'information ?
Le principe de la recursivité est d'avoir une "granularité" plus ou moins grande au choix de l'utilisateur final
duck88
Vous n’avez pas trouvé la réponse que vous recherchez ?
Mike Gagnon
Messages postés381Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention24 octobre 20132 29 mars 2006 à 18:29
Ce forum n'est pas la place ideale pour donner un cours sur les conventions et la normalisation des bases de données relationelle, mais si tu fait des recherches sur le net sur le sujet, tu va voir plusieurs examples comment faire.
Il suffit de realiser que le concept que je propose fonctionne depuis tres longtemps...
Imedbenmiled
Messages postés12Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention 2 juin 2008 30 mai 2008 à 16:42
bonjour ,
a mon avis vous pouviez faire ça avec deux tables.
1- table article (reference, designation, ...)
2-table composantes (refarticle, refcomposante,qte)
vous ouvrez la table article dans deux zones différentes, avec daux alias diffrénts.
vou lie la premiere au champs refarticle, et la deuxieme au champs refcomposante.
j'espere que ca marche.
Imedbenmiled
Messages postés12Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention 2 juin 2008 30 mai 2008 à 19:44
bonjour
j'ai pas fait attention à l'année, et je croyais qu-il faut indiquer si le problème est résolu, et si c'est possible idiquer la solution, pour que ça sert à d'autres.