Argosoft
04-06-2005, 19:12
Salve! chi si rivede, brrr :D
Ho bisogno di un consiglio per una query.. una finezza, un pelo nell'uovo... però mi piacerebbe saperla :)
La situazione è: sto creando un forum in php come tesi d'esame, e nello scriverlo mi sono imbattuto nel problema di visualizzare il "path" delle sezioni data una sezione specifica.. per intenderci, questo qua
http://img161.echo.cx/img161/4663/p5ay.jpg
ho una tabella contenente le sezioni, e c'è la possibilità di annidarle all'infinito :p :D ogni sezione ha un codice e un riferimento alla sezione padre, che può valere -1 se la sezione padre è la index del forum. Mò... per creare il path avevo pensato a 2 metodi:
- data una sezione di codice n, tramite un ciclo faccio tante query finché non trovo che la sezione attuale punta a -1;
- tramite php mi costruisco una self-join gigante del tipo:
SELECT s1.title, s1.id_section, s2.title, s2.id_section, s3.title, s3.id_section
FROM sections AS s1, sections AS s2, sections AS s3
WHERE s3.id_parent_section = s2.id_section AND s2.id_parent_section = s1.id_section AND s3.id_section = n
la domanda è: in termini di prestazioni, qual è la soluzione migliore? visto che di sezioni annidate ce ne possono essere finché il database ne tiene (beh, vabbè.. magari nella gestione delle sezioni metterò un limite di 10, toh, ma cmq un max 10 query solo per creare il path sono consigliabili? )
grazie a chi risponderà! :)
PS! sto forum non rimarrà come tesina.. andrà installato sul mio sito e quindi su un server serio.. ecco perché mi interessa sapere questa cosa :)
ciau!
Ho bisogno di un consiglio per una query.. una finezza, un pelo nell'uovo... però mi piacerebbe saperla :)
La situazione è: sto creando un forum in php come tesi d'esame, e nello scriverlo mi sono imbattuto nel problema di visualizzare il "path" delle sezioni data una sezione specifica.. per intenderci, questo qua
http://img161.echo.cx/img161/4663/p5ay.jpg
ho una tabella contenente le sezioni, e c'è la possibilità di annidarle all'infinito :p :D ogni sezione ha un codice e un riferimento alla sezione padre, che può valere -1 se la sezione padre è la index del forum. Mò... per creare il path avevo pensato a 2 metodi:
- data una sezione di codice n, tramite un ciclo faccio tante query finché non trovo che la sezione attuale punta a -1;
- tramite php mi costruisco una self-join gigante del tipo:
SELECT s1.title, s1.id_section, s2.title, s2.id_section, s3.title, s3.id_section
FROM sections AS s1, sections AS s2, sections AS s3
WHERE s3.id_parent_section = s2.id_section AND s2.id_parent_section = s1.id_section AND s3.id_section = n
la domanda è: in termini di prestazioni, qual è la soluzione migliore? visto che di sezioni annidate ce ne possono essere finché il database ne tiene (beh, vabbè.. magari nella gestione delle sezioni metterò un limite di 10, toh, ma cmq un max 10 query solo per creare il path sono consigliabili? )
grazie a chi risponderà! :)
PS! sto forum non rimarrà come tesina.. andrà installato sul mio sito e quindi su un server serio.. ecco perché mi interessa sapere questa cosa :)
ciau!