Mysql
 sql >> Database >  >> RDS >> Mysql

Come inserire i dati nel modello del set nidificato (MySQL);

Presumo dai tag e dal titolo che stai cercando una soluzione che funzioni con MySQL .

Sì, hai ragione che, a meno che tu non conosca il numero di elementi in anticipo, il valore di right deve essere calcolato dinamicamente. Ci sono due approcci che puoi usare:

  • Puoi iniziare con il valore minimo che funziona (2 in questo caso) e aumentarlo in seguito secondo necessità.
  • Potresti semplicemente fare un'ipotesi come 10000000 e sperare che sia abbastanza, ma devi essere preparato alla possibilità che non sia stato sufficiente e potrebbe essere necessario aggiustarlo di nuovo in seguito.

In entrambi i casi è necessario implementare che il left e right i valori per più righe potrebbero dover essere modificati quando si inseriscono nuove righe, ma nel secondo caso è necessario eseguire gli aggiornamenti solo se le ipotesi erano sbagliate. Quindi la seconda soluzione è più complessa, ma può fornire prestazioni migliori.

Tieni presente che dei quattro modi comuni per archiviare i dati gerarchici, l'approccio degli insiemi nidificati è il più difficile per eseguire inserimenti e aggiornamenti. Vedi la diapositiva 69 dei Modelli per i dati gerarchici di Bill Karwin .