Może ktoś z Was opracował i się niem podzieli sposób-zapytanie SQL, procedurę składowaną na sprawdzanie czy drzewo oparte o lvt, rgt http://dev.mysql.com/tech-resources/articl...hical-data.html jest prawidłowe jak chodzi o zgodność wartości w kolumnach lvt, rgt określających strukturę drzewa.

Z tego co na szybko widzę prawa wartość pnia drzewa ROOT [ELECTRONICS ] = ilość rekordów * 2, ale jak zgodność sprawdzić w poszczególnych rekordach tak by np po wykonaniu operacji z błędem np przeniesienie można było wycofać w ramach transakcji.

Kod
+-------------+----------------------+-----+-----+
| category_id | name                 | lft | rgt |
+-------------+----------------------+-----+-----+
|           1 | ELECTRONICS          |   1 |  20 |
|           2 | TELEVISIONS          |   2 |   9 |
|           3 | TUBE                 |   3 |   4 |
|           4 | LCD                  |   5 |   6 |
|           5 | PLASMA               |   7 |   8 |
|           6 | PORTABLE ELECTRONICS |  10 |  19 |
|           7 | MP3 PLAYERS          |  11 |  14 |
|           8 | FLASH                |  12 |  13 |
|           9 | CD PLAYERS           |  15 |  16 |
|          10 | 2 WAY RADIOS         |  17 |  18 |
+-------------+----------------------+-----+-----+


Pozdrawiam