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

Bagaimana cara menghasilkan tampilan pohon dari kumpulan hasil ini berdasarkan Algoritma Traversal Pohon?

Saat membangun model pohon bersarang, jangan pernah membuat duplikat di lft dan rgt . Bahkan, Anda harus menyatakannya unik.

Dalam model data Anda, set untuk kategori 1 dan 8 tumpang tindih. Katakanlah, 1 ke 14 digunakan baik untuk item 1 dan 8 .

Ganti dengan nilai berikut:

INSERT INTO `categories` VALUES(1, NULL, NULL, 'Fruits', 1, 14);
INSERT INTO `categories` VALUES(2, 1, 1, 'Apple', 2, 3);
INSERT INTO `categories` VALUES(3, 1, 1, 'Orange', 4, 9);
INSERT INTO `categories` VALUES(4, 3, 1, 'Orange Type 1', 5, 6);
INSERT INTO `categories` VALUES(5, 3, 1, 'Orange Type 2', 7, 8);
INSERT INTO `categories` VALUES(6, 1, 1, 'Pear', 10, 11);
INSERT INTO `categories` VALUES(7, 1, 1, 'Banana', 12, 13);
INSERT INTO `categories` VALUES(8, NULL, NULL, 'Eletronics', 15, 29);
INSERT INTO `categories` VALUES(9, 8, 8, 'Cell Phones', 16, 17);
INSERT INTO `categories` VALUES(10, 8, 8, 'Computers', 19, 24);
INSERT INTO `categories` VALUES(11, 10, 8, 'PC', 20, 21);
INSERT INTO `categories` VALUES(12, 10, 8, 'MAC', 22, 23);
INSERT INTO `categories` VALUES(13, 8, 8, 'Printers', 25, 26);
INSERT INTO `categories` VALUES(14, 8, 8, 'Cameras', 27, 28);

Sekarang Anda tidak perlu memesan di root_id .

Tidak mudah, kecuali Anda memasukkan node dalam urutan nama dari awal. Saudara dengan name yang lebih besar harus memiliki lft . yang lebih besar dan rgt :

INSERT INTO `categories` VALUES(1, NULL, NULL, 'Fruits', 1, 14);
INSERT INTO `categories` VALUES(2, 1, 1, 'Apple', 2, 3);
INSERT INTO `categories` VALUES(7, 1, 1, 'Banana', 4, 5);
INSERT INTO `categories` VALUES(3, 1, 1, 'Orange', 6, 11);
INSERT INTO `categories` VALUES(4, 3, 1, 'Orange Type 1', 7, 8);
INSERT INTO `categories` VALUES(5, 3, 1, 'Orange Type 2', 9, 10);
INSERT INTO `categories` VALUES(6, 1, 1, 'Pear', 12, 13);

Pohon bersarang hanya dapat memiliki satu urutan implisit.

Ada juga cara untuk menanyakan daftar kedekatan di MySQL :

, namun, Anda harus membuat kolom pemesanan unik tambahan jika Anda ingin memesan selain id .

Anda mungkin juga ingin membaca artikel ini:

yang menunjukkan cara menyimpan dan mengkueri kumpulan bersarang secara lebih efisien.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Gabung Dimana Tidak Ada

  2. Bagaimana cara mengekstrak kata ke-n dan menghitung kemunculan kata dalam string MySQL?

  3. Bagaimana cara membangun mesin 'pertanyaan terkait'?

  4. Cara menambah nilai di MySQL dengan PHP mysqli

  5. Pola koneksi database tunggal PHP