Accueil > Forum > > > > Recursivité
Recursivité
mercredi 29 mars 2006 à 12:08:30 |
Recursivité

ducker88
|
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 ? duck88
|
|
mercredi 29 mars 2006 à 13:11:42 |
Re : Recursivité

Mike Gagnon
|
Si tu as une clé primaire dans la table père, utilise cette clé pour les articles dans la table fils.
CLOSE DATABASES ALL
CREATE CURSOR tablepere (pk i,nom c(30))
INSERT INTO tablepere (pk,nom) VALUES (1,"Ordinateur #1")
INSERT INTO tablepere (pk,nom) VALUES (2,"Ordinateur #2")
INSERT INTO tablepere (pk,nom) VALUES (3,"Ordinateur #3")
CREATE CURSOR tablefils (pk i, pieces c(30))
INSERT INTO tablefils (pk, pieces) VALUES (1,"Carte reseau")
INSERT INTO tablefils (pk, pieces) VALUES (1,"Carte de son")
INSERT INTO tablefils (pk, pieces) VALUES (1,"Disque dur")
INSERT INTO tablefils (pk, pieces) VALUES (3,"Carte reseau")
INSERT INTO tablefils (pk, pieces) VALUES (1,"Ecran")
INSERT INTO tablefils (pk, pieces) VALUES (2,"Ecran")
INSERT INTO tablefils (pk, pieces) VALUES (2,"Carte reseau")
SELECT nom,pieces FROM tablepere,tablefils WHERE tablepere.pk = tablefils.pk ORDER BY 1
SELECT Tablepere.nom, Tablefils.pieces;
FROM ;
tablepere ;
INNER JOIN tablefils ;
ON Tablepere.pk = Tablefils.pk;
WHERE Tablepere.pk = 1
Mike Gagnon
|
|
mercredi 29 mars 2006 à 13:41:22 |
Re : Recursivité

ducker88
|
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
|
|
mercredi 29 mars 2006 à 14:26:41 |
Re : Recursivité

Mike Gagnon
|
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.
Mike Gagnon
|
|
mercredi 29 mars 2006 à 14:45:44 |
Re : Recursivité

ducker88
|
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
|
|
mercredi 29 mars 2006 à 18:29:56 |
Re : Recursivité

Mike Gagnon
|
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...
Mike Gagnon
|
|
mercredi 29 mars 2006 à 19:34:08 |
Re : Recursivité

ducker88
|
tu as raison on s'eloigne du sujet de depart. Je vais chercher la meilleure solution sur le net.
Merci quand meme ++
duck88
|
|
mercredi 29 mars 2006 à 23:50:08 |
Re : Recursivité

MichelAtoutFox
|
Bonjour, regarde ceci [ Lien ]c'est du 100% VFP (écrit en vfp6), et ça gère les récursivités, sans limite autre que physique (et les 2Go de dbf, bien sur). si ça t'intéresse, mail direct. Michel
|
|
vendredi 30 mai 2008 à 16:42:25 |
Re : Recursivité

Imedbenmiled
|
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.
|
|
vendredi 30 mai 2008 à 19:10:51 |
Re : Recursivité

Mike Gagnon
|
J'espere qu'apres deux ans le probleme est resolu. Le message estdate de 2006
Mike Gagnon
|
|
Cette discussion est classée dans : table, probleme, article, clé, recursivité
Répondre à ce message
Sujets en rapport avec ce message
probleme sur append [ par ducker88 ]
Bonjour a tous, voici mon soucis, je voudrais copié les enregistrement d'une table A vers une table Bj'utilise donc la fonction append from;Pour verif
Probleme sur apprend from [ par ducker88 ]
Bonjour a tous, voici mon soucis, je voudrais copié les enregistrement d'une table A vers une table Bj'utilise donc la fonction append from;Pour verif
Trouver clé primaire [ par ducker88 ]
Bonjour,Est t'il possible de trouvé automatiquement la clé primaire en connaissant la table ?Je voudrais realiser une fonction permettant de renvoyer
Erreur dans une fonction :( [ par ducker88 ]
Bonjour,Voila j'ai creer une fonction transfert.prg qui à pour but de copier les donnée d'une table vers une autre. Je passe en parametre le nom de ce
[urgent] probleme base foxpro et installshield 11 [ par ducker88 ]
Bonjour a tous, Bon je sais que ce n'est pas trop l'endroit pour poster ce message mais peu etre pourrez vous quand meme m'aider.Voila j'ai un program
Ajout champ dans table [ par ducker88 ]
Bonjour a tous,Voila j'aimerai créer une fonction qui permettrai d'ajouter un champ à une table.Cette fonction dois avoir comme parametre le nom de la
Existence d'une table [ par ducker88 ]
Bonjour,Existe t'il un moyen simple de verifier l'existence d'une table et savoir si elle est disponible.Merciduck88
erreur sur creation de table [ par ducker88 ]
Bonjour,Voila je veux creer une table dans une database existente, je me suis inspiré de l'aide de VFP et j'en ai tiré le code suivant : CREATE TABLE
probleme requete et date [au secours] [ par ducker88 ]
bonjour,Voila j'ai creer la requete suivante : select num_di,libe_di,date_dema where date_dema >={2006/01/19}et quand elle est executer elle fait l'er
Creation de table mais pas a l'endroit voulu [ par ducker88 ]
Bonjour,Voila je souhaiterai creer une table dans une base specifique.J'ai donc tapé le code suivant : CLOSE DATABASES SET PATH TO C_che
Livres en rapport
|
Derniers Blogs
ENUMERABLECOLLECTIONENUMERABLECOLLECTION par Matthieu MEZIL
Prenons le scénario suivant. On utilise MVVM. On a les deux classes suivantes dans le model : public class Child { } public class Parent { private ObservableCollection < Child > _children; public ObservableCollection < Child > Children { get {...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [HS] CHROME 6 + MOI = COUP DE GUEULE ![HS] CHROME 6 + MOI = COUP DE GUEULE ! par JeremyJeanson
Attention, le poste qui suit n'est pas la complainte d'une personne : Qui n'aime pas Chrome. D'un anti Google. D'un développeur qui a un poil énorme dans la main. Ceux qui me fréquentent savent que je change de navigateur favori tous les 2 ou 3 mois afin ...
Cliquez pour lire la suite de l'article par JeremyJeanson [WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas [TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION[TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION par cyril
Lorsque l'on créé un Work Item dans TFS, il est possible de le classer dans un "area" et dans une "iteration". Dans la plupart des types de projet, un "area" correspond à une catégorie, une "iteration" à un numéro de version. Il est possible de cré...
Cliquez pour lire la suite de l'article par cyril
Logiciels
uTorrent (2.0.4)UTORRENT (2.0.4)C'est un client BitTorrent très puissant et très performant. Comme son nom l'indique, uTorrent (m... Cliquez pour télécharger uTorrent Bureau de Gestion - ERP Devis Facturation (2.02)BUREAU DE GESTION - ERP DEVIS FACTURATION (2.02)- Version gratuite du 10/06/2010
Le Bureau de Gestion est un logiciel dédié à la gestion de l'en... Cliquez pour télécharger Bureau de Gestion - ERP Devis Facturation 4Videosoft Transfert iPod Mac (3.2.08)4VIDEOSOFT TRANSFERT IPOD MAC (3.2.08)4Videosoft Transfert iPod-Mac caractérise principalement à transférer les fichiers iPod vers Mac.... Cliquez pour télécharger 4Videosoft Transfert iPod Mac 4Videosoft HD Convertisseur (3.3.08)4VIDEOSOFT HD CONVERTISSEUR (3.3.08)Etant le meilleur HD Vidéo Convertisseur, 4Videosoft HD Convertisseur, vous pouvez regarder la vi... Cliquez pour télécharger 4Videosoft HD Convertisseur 4Videosoft Transfert iPad Mac (3.2.08)4VIDEOSOFT TRANSFERT IPAD MAC (3.2.08)4Videosoft Transfert iPad-Mac est un logiciel managérial iPad professionnel qui a des fonctions i... Cliquez pour télécharger 4Videosoft Transfert iPad Mac
|