Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

ट्री ट्रैवर्सल एल्गोरिथम के आधार पर इस परिणाम सेट से ट्री व्यू कैसे उत्पन्न करें?

नेस्टेड ट्री मॉडल बनाते समय, कभी भी lft . पर डुप्लीकेट न बनाएं और rgt . वास्तव में, आपको उन्हें अद्वितीय घोषित करना चाहिए।

आप डेटा मॉडल में, श्रेणी के लिए सेट 1 और 8 ओवरलैप। कहें, 1 करने के लिए 14 दोनों आइटम के लिए उपयोग किया जाता है 1 और 8

उन्हें इन मानों से बदलें:

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);

अब आपको root_id . पर ऑर्डर करने की जरूरत नहीं है ।

कोई आसान तरीका नहीं है, जब तक कि आप शुरू से ही नाम क्रम में नोड्स नहीं डालते। बड़े name वाले भाई-बहन lft greater से बड़ा होना चाहिए और 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);

नेस्टेड ट्री में केवल एक निहित क्रम हो सकता है।

MySQL . में आसन्न सूची को क्वेरी करने का एक तरीका भी है :

, हालांकि, यदि आप id के अलावा किसी अन्य चीज़ पर ऑर्डर करना चाहते हैं, तो आपको एक अतिरिक्त अनन्य ऑर्डरिंग कॉलम बनाना होगा ।

आप इस लेख को भी पढ़ना चाहेंगे:

जो दिखाता है कि नेस्टेड सेट को अधिक कुशलता से कैसे स्टोर और क्वेरी किया जाए।



  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 कनेक्टर्स और लाइसेंसिंग

  2. MySQL में किसी तिथि में दिन कैसे जोड़ें

  3. चर के mysql घोषणा के लिए सिंटैक्स त्रुटि

  4. साझा कॉलम के लिए मास्टर टेबल का उपयोग करना संपूर्ण डेटाबेस के लिए अच्छा अभ्यास है?

  5. MySQL एनम बनाम सेट