Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [MySQL] Ottimizzazione alla terza forma normale - albero pagine e livelli

    Ciao,
    ho una tabella del DB che contiene le informazioni sulle pagine.
    Per ogni pagina oltre ai dati unici c'è il campo parent_id che indica la pagina padre a cui essa appartiene.
    Se è una pagina principale, il valore di parent_id sarà 0:

    codice:
    +-----------+-------------+---------+
    |  page_id  |  parent_id  |  level  |
    +-----------+-------------+---------+
    |     1     |      0      |    0    |
    +-----------+-------------+---------+
    |     2     |      0      |    0    |
    +-----------+-------------+---------+
    |     3     |      1      |    1    |
    +-----------+-------------+---------+
    |     4     |      2      |    1    |
    +-----------+-------------+---------+
    |     5     |      3      |    2    |
    +-----------+-------------+---------+
    Il campo level indica il livello della pagina all'interno dell'albero, e il suo valore viene calcolato dall'applicazione (PHP) al momento dell'inserimento/modifica del record.
    Escludendo questo campo, la tabella è ottimizzata, mentre lasciando il campo la tabella non rispetta la [color=royal blue]terza forma normale[/color], che prevede l'eliminazione delle dipendenze.

    È possibile con MySQL risalire al livello di una pagina senza leggerlo dal campo?
    A me sembra un'operazione ricorsiva non implementabile in una where clause.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #2
    IMHO stai confondendo ottimizzazione e normalizzazione (spesso un database ottimizzato viene appositamente de-normalizzato).

    Comunque, ti consiglio di leggere questo articolo:

    Managing Hierarchical Data in MySQL

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.