Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment insérer des données dans le modèle d'ensemble imbriqué (MySQL);

Je suppose d'après vos balises et votre titre que vous recherchez une solution qui fonctionne avec MySQL .

Oui, vous avez raison, sauf si vous connaissez à l'avance le nombre d'éléments, la valeur de right doit être calculé dynamiquement. Vous pouvez utiliser deux approches :

  • Vous pouvez commencer avec la valeur la plus faible qui fonctionne (2 dans ce cas) et l'augmenter ultérieurement si nécessaire.
  • Vous pouvez simplement faire une estimation comme 1 0000000 et espérer que cela suffira, mais vous devez être préparé à la possibilité que ce ne soit pas suffisant et que vous deviez peut-être ajuster à nouveau plus tard.

Dans les deux cas, vous devez implémenter que le left et right les valeurs de plusieurs lignes peuvent devoir être ajustées lors de l'insertion de nouvelles lignes, mais dans le second cas, vous n'avez réellement besoin d'effectuer les mises à jour que si vos suppositions étaient erronées. La deuxième solution est donc plus complexe, mais peut donner de meilleures performances.

Notez que des quatre manières courantes de stocker des données hiérarchiques, l'approche des ensembles imbriqués est la plus difficile pour effectuer des insertions et des mises à jour. Voir la diapositive 69 des Modèles pour les données hiérarchiques de Bill Karwin .