Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como inserir dados no modelo de conjunto aninhado (MySQL);


Estou assumindo pelas suas tags e título que você está procurando uma solução que funcione com MySQL .

Sim, você está certo que, a menos que você saiba o número de elementos com antecedência, o valor para right precisa ser calculado dinamicamente. Existem duas abordagens que você pode usar:
  • Você pode começar com o menor valor que funcionar (2 neste caso) e aumentá-lo posteriormente, conforme necessário.
  • Você pode apenas fazer um palpite como 1.000.000 e esperar que seja o suficiente, mas você precisa estar preparado para a possibilidade de que não foi suficiente e pode precisar de ajustes novamente mais tarde.

Em ambos os casos você precisa implementar que o left e right os valores para várias linhas podem precisar ser ajustados ao inserir novas linhas, mas no segundo caso você só precisa realizar as atualizações se seus palpites estiverem errados. Portanto, a segunda solução é mais complexa, mas pode fornecer melhor desempenho.

Observe que das quatro maneiras comuns de armazenar dados hierárquicos, a abordagem de conjuntos aninhados é a mais difícil para realizar inserções e atualizações. Veja o slide 69 de Modelos para dados hierárquicos de Bill Karwin .