Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

penyimpanan hierarki mysql dengan pohon besar

Desain Kumpulan Bersarang pasti sulit ketika Anda harus sering melakukan pembaruan pada pohon. Anda akhirnya harus memberi nomor ulang pada sebagian besar pohon.

Satu saran untuk mengurangi ini adalah dengan menggunakan angka floating-point alih-alih bilangan bulat. Jika Anda menyisipkan simpul baru di pohon, relatif mudah untuk menemukan beberapa nomor FLOAT di antara kumpulan nomor bersarang induk dari simpul baru. Pada akhirnya Anda mungkin mencapai batas presisi angka floating-point, tetapi karena pohon Anda tidak terlalu dalam, itu tidak akan terjadi untuk waktu yang lama.

Teknik lain yang saya tulis tentang saya sebut Tabel Penutupan . Metode penyimpanan hierarki ini membuatnya lebih mudah untuk menyisipkan/memperbarui/menghapus node di pohon besar tanpa perlu memperbarui banyak pohon Anda. Dan Anda masih dapat membuat kueri seluruh pohon atau subpohon apa pun dalam satu kueri SQL non-rekursif.

Untuk membaca lebih lanjut tentang Tabel Penutupan, lihat:

Kembali komentar Anda:

Adjacency List sederhana, memiliki redundansi minimum, dan mendukung hubungan FK, yang tidak dimiliki oleh Kumpulan Bersarang. Adjacency List mendukung kueri seluruh pohon dengan kedalaman arbitrer jika Anda menggunakan kueri rekursif . Tetapi MySQL tidak mendukung kueri rekursif.

Jika Anda hanya perlu membuat kueri hubungan induk-anak langsung (yaitu satu tingkat kedalaman), atau jika tidak, hanya kueri pohon dengan kedalaman tetap, maka Adjacency List tidak masalah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL pilih anggota grup ke-n

  2. MYSQL Tanggal Waktu Putaran Ke Jam Terdekat

  3. Bagaimana saya bisa mendapatkan jumlah pelanggan per hari dengan pelanggan unik dan berulang untuk tanggal tertentu?

  4. cara menggunakan sql gabung di mysql

  5. Kesalahan MySQL:Ukuran kolom maksimum adalah 767 byte