2008-08-26 20 views
5

अब तक मुझे डेटाबेस में पेड़ संरचनाओं को संग्रहीत करने के लिए मॉडल के रूप में आसन्न सूची, नेस्टेड सेट और नेस्टेड अंतराल का सामना करना पड़ा है। मैं इन्हें काफी अच्छी तरह से जानता हूं और पेड़ों को एक से दूसरे में स्थानांतरित कर दिया है।वृक्ष संरचनाओं को संग्रहित करने के लिए मॉडल क्या हैं और उनकी विशेषताएं क्या हैं?

अन्य लोकप्रिय मॉडल क्या हैं? उनकी विशेषताएं क्या हैं? इस विषय पर अच्छे संसाधन (किताबें, वेब, आदि) क्या हैं?

मैं केवल डीबी स्टोरेज की तलाश नहीं कर रहा हूं बल्कि सामान्य रूप से पेड़ों पर अपना ज्ञान विस्तारित करना चाहता हूं। उदाहरण के लिए, मैं समझता हूं कि नेस्टेड सेट/अंतराल विशेष रूप से डेटाबेस भंडारण के संबंध में अनुकूल हैं और खुद से पूछा है, क्या वे वास्तव में खराब अन्य संदर्भों में पसंद करते हैं?

उत्तर

1

इसके लिए मौलिक संसाधन अध्याय 28-30 SQL for Smarties है।

(मैं इस पुस्तक की अनुशंसा की है इतना मैं समझ Celko मुझे अब तक रॉयल्टी बकाया है!)

2

एक भिन्नता है जहां आप प्रत्यक्ष पदानुक्रमिक प्रतिनिधित्व (यानी नोड में मूल लिंक) का उपयोग करते हैं, लेकिन पथ मान भी संग्रहीत करते हैं।

यानी। एक निर्देशिका निम्नलिखित से मिलकर पेड़ के लिए:

C:\ 
    Temp 
    Windows 
     System32 

आप निम्न नोड्स

Key  Name  Parent  Path 
1  C:     *1* 
2  Temp  1  *1*2* 
3  Windows 1  *1*3* 
4  System32 3  *1*3*4* 

पथ अनुक्रमणित है है, और आप जल्दी से एक प्रश्न है कि एक नोड और ऊपर उठाता है करने की अनुमति देगा अपने सभी रेंजों में हेरफेर किए बिना बच्चों को।

यानी। \ अस्थायी और उसके सभी बच्चों:: सी खोजने के लिए

WHERE Path LIKE '*1*2*%' 

यह प्रतिनिधित्व एकमात्र ऐसी जगह है जहाँ मैं संग्रहीत करने का विचार कर सकते हैं आईडी एक स्ट्रिंग में की की तरह यह ठीक है।

+0

यह विज्ञापन सूची और भौतिकृत पथ का एक संकर होगा, है ना? इसमें किस परिदृश्य का उपयोग किया जाएगा? ऐसा लगता है कि एक प्रश्न के साथ सभी बच्चों को नेस्टेड सेट/अंतराल के साथ बेहतर सेवा दी जाएगी और मुझे नहीं लगता कि आप आसन्नता सूची को भी स्टोर करना चाहते हैं? –

0

@lassevk: और अधिक विस्तार में अपने दृष्टिकोण के बारे में बात करती है और This article कोड के टुकड़े प्रदान करता है।

उम्मीद है कि इससे मदद मिलती है।