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

बड़े पेड़ों के साथ mysql पदानुक्रम भंडारण

नेस्टेड सेट डिज़ाइन निश्चित रूप से कठिन होता है जब आपको पेड़ को लगातार अपडेट करने की आवश्यकता होती है। अंत में आपको पेड़ के बड़े हिस्से का नंबर बदलना पड़ता है।

इसे कम करने के लिए एक सुझाव पूर्णांकों के बजाय फ्लोटिंग-पॉइंट नंबरों का उपयोग करना है। यदि आप ट्री में एक नया नोड सम्मिलित करते हैं, तो नए नोड के पैरेंट के नेस्टेड सेट नंबरों के बीच कुछ FLOAT संख्याओं को खोजना अपेक्षाकृत आसान है। आप अंततः फ़्लोटिंग-पॉइंट संख्या की सटीकता की सीमा तक पहुँच सकते हैं, लेकिन चूंकि आपका पेड़ बहुत गहरा नहीं है, इसलिए ऐसा लंबे समय तक नहीं होगा।

एक और तकनीक जिसके बारे में मैंने लिखा है, मैं उसे क्लोजर टेबल . कहता हूं . पदानुक्रमों को संग्रहीत करने की यह विधि आपके बहुत से पेड़ को अद्यतन करने की आवश्यकता के बिना बड़े पेड़ में नोड्स डालने/अपडेट/हटाने में बहुत आसान बनाती है। और आप अभी भी एक गैर-पुनरावर्ती SQL क्वेरी में पूरे पेड़ या किसी भी उपट्री को क्वेरी कर सकते हैं।

क्लोजर टेबल के बारे में अधिक पढ़ने के लिए, देखें:

अपनी टिप्पणी दें:

आसन्नता सूची सरल है, इसमें न्यूनतम अतिरेक है, और यह एफके संबंधों का समर्थन करता है, जो नेस्टेड सेट नहीं करता है। यदि आप पुनरावर्ती क्वेरी का उपयोग करते हैं, तो Adjacency List मनमानी गहराई के पूरे पेड़ को क्वेरी करने का समर्थन करती है . लेकिन MySQL पुनरावर्ती प्रश्नों का समर्थन नहीं करता है।

यदि आपको केवल तत्काल माता-पिता-बाल संबंधों (यानी गहराई का एक स्तर) से पूछताछ करने की आवश्यकता है, या अन्यथा केवल निश्चित गहराई के पेड़ पूछें, तो आसन्न सूची ठीक है।



  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. InnoDB के साथ पूर्ण पाठ खोज

  3. mysql में वैश्विक sql_mode सेट करना

  4. केवल-पढ़ने के लिए MySQL उपयोगकर्ता कैसे बनाएं?

  5. डीडीएल परिवर्तन तालिका घटनाओं को निष्पादित करने में त्रुटि को कैसे ठीक करें विदेशी कुंजी FKg0mkvgsqn8584qoql6a2rxheq को JDBC स्टेटमेंट के माध्यम से छोड़ दें