reuperer un abre avec fonction recursive

Mammouth du PHP | 1311 Messages

15 juin 2005, 21:24

salut
afin de gerer les pages de mon site je cherche une facon de les classées dans une base et j'ai abouti aux modele quiest decrit sur http://sql.developpez.com/arborescence/
mais je ne sais pas dans quelle odre proceder pour recuperer mon arbre.
en fait comment recuperer mes info (1page mere -> pages filles) avec une fonction recursive qui me donne l'état des pages (si c'est une page fille ou mere)
ma question quel est le bon algo?
merci

Mammouth du PHP | 19672 Messages

15 juin 2005, 21:46

Pour concevoir ta base, fais-toi un dictionnaire de données. Établis quels sont les éléments que tu vas devoir manipuler: articles, titres, textes, dates et heures, auteurs, sujet traité, etc... À partir de là, tu vas pouvoir discerner les éléments qui seront des "entités" de ceux qui seront des "propriétés" de ces entités: à terme, tu vas aboutir à ce qu'on appelle un modèle conceptuel de données. Tu devras établir les relations entre les entités: je vais prendre un exemple complètement fictif juste pour illustrer: un article fait partie d'd'un sujet et un seul, mais un sujet peut être couvert par plusieurs articles.

À partir de ce modèle conceptuel, tu peux établir le modèle physique: chaque entité va être une table, les propriétés seront les champs de ces tables.

Ce sera une méthode (à mon avis, et ça n'engage que moi) moins complexe que le système d'arborescence de l'article que tu cites.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

15 juin 2005, 22:38

pour l'instant je reste sur ma premiere idée (pour voir au moins comment ca marche)
en fait je ne sais pas comment etablir la condition de sortie de ma fonction
c'est a dire si je commece du tronc vers les feuilles ou l'inverse .le pb c'est de retrouver les elements parents et lautre c'est l'odre de traitement ou je ne vois pas comment faire,c'est a dire par quel branche je commence et par laquelle je fini

Mammouth du PHP | 1311 Messages

16 juin 2005, 19:34

bon ba je crois que je vais modeliser ma base et regarder a ce quoi je vais aboutir cependant j'ai des pêtites qestions :
a priorie je vais avoir 2 table
  • une pour decrire ma page
  • et une autre pour donnée son emplacement dans l'arbre
quel est la meilleur methode pour lier ces 2 base? auto-jointure ou assocition
sinon on cherchant j'ai trouver une fonction de Xenon qui me permet de creer mon arbre ici
mais faire des requete en recursif je sais pas si c'est une bonne idée(surtout si le site comprte un nombre important de page)
comment je pourrai optimiser la requete et la fonction?
*

A par ca si quelqu'un a un truc fonctionne bien avec la premier methode sa m'interresse.
merci

Mammouth du PHP | 19672 Messages

16 juin 2005, 22:32

...methode pour lier ces 2 base? auto-jointure ou assocition...
Si je pouvais être entendu, je tousserais surement un peu ;) alors ne mélangeons pas tout n'importe comment.

Une base de données contient une à plusieurs tables. On ne lie pas des bases entre elles, on le fait entre des tables.

Ce point de détail réglé, une auto-jointure, c'est la jointure d'une table... sur elle-même, donc vu de cette manière, ta question n'a pas de sens.

L'association entre deux table se traduit souvent par une table intermédiaire: ça peut être nécessaire selon les cardinalités.... là, j'hésite un peu, sais-tu de quoi je parle en parlant de cardinalités ?

Tu devrais continuer à explorer les tutos de développez.com sur la modélisation de bases de données, il y a beaucoup de choses intéressantes :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1311 Messages

17 juin 2005, 08:33

ba surtout ne t'etouffe pas :wink:
je vais suivre tes conseille
mais quand une autre quetion je suis sous mysql 4 alors association ou sous requete?
merci

Mammouth du PHP | 19672 Messages

17 juin 2005, 09:08

si c'est MySQl 4.0, jointures externes, les sous-requêtes ne fonctionnent qu'à partir de MySQL 4.1

Une association n'a pas grand chose à voir...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: