Tutorial "Nested Sets" ist falsch

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tutorial "Nested Sets" ist falsch

    Hallo,


    das Tutorial zu Nested Sets im Artikel www.php-resource.de/tutorials/read/21/3/ hat einen Fehler in der SQL-Anweisung.

    Durch AND lft > V_RGT alleine wird sichergestellt, dass rgt größer als V_RGT sein muss (in NS ist rgt immer mindestens das Inkrement von lft und wenn somit lft größer als V_RGT ist, muss es rgt zwangsläufig auch sein) . Daher ist die zusätzliche Bedingung "AND rgt >= V_RGT;" in der ersten UPDATE-Anweisung überflüssig und zudem falsch, da rgt niemals gleich (wobei das alleinge > stimmen würde, wenn auch unnötig) V_RGT sein darf und kann, wenn die erste Bedingung true zurückliefert.

    LOCK TABLES node WRITE;

    UPDATE node
    SET lft = lft + 2
    WHERE root_id = V_ROOT_ID
    AND lft > V_RGT
    [COLOR=crimson] AND rgt >= V_RGT;[/COLOR]

    UPDATE node
    SET rgt = rgt + 2
    WHERE root_id = V_ROOT_ID
    AND rgt >= V_RGT;

    INSERT INTO node ( root_id, payload, lft, rgt )
    VALUES ( V_ROOT_ID, 'B - Reply auf "A"', V_RGT, V_RGT + 1 );

    UNLOCK TABLES;


    Habe das jetzt nicht getestet und verlasse mich mal auf meinen Instinkt

    Grüße

    cc-net
    Zuletzt geändert von cc-net; 24.09.2005, 22:50.
Lädt...
X