Jag utgår från dina taggar och titel att du letar efter en lösning som fungerar med MySQL .
Ja, du har rätt i att om du inte vet antalet element i förväg värdet för right
måste beräknas dynamiskt. Det finns två metoder du kan använda:
- Du kan börja med det minsta värdet som fungerar (2 i det här fallet) och öka det senare vid behov.
- Du kan bara gissa som 10000000 och hoppas att det räcker, men du måste vara beredd på möjligheten att det inte räckte och kan behöva justeras igen senare.
I båda fallen måste du implementera det left
och right
värden för flera rader kan behöva justeras när du infogar nya rader, men i det andra fallet behöver du faktiskt bara utföra uppdateringarna om dina gissningar var fel. Så den andra lösningen är mer komplex, men kan ge bättre prestanda.
Observera att av de fyra vanliga sätten att lagra arvsdata är metoden med kapslade uppsättningar det svåraste för att utföra infogningar och uppdateringar. Se bild 69 av Bill Karwins Modeller för Heirarchical Data .