2011-01-22 23 views
51

किस प्रकार का नोएसक्यूएल डेटाबेस पदानुक्रमित डेटा स्टोर करने के लिए सबसे उपयुक्त है?पदानुक्रमित डेटा स्टोर करने के लिए किस प्रकार का नोएसक्यूएल डेटाबेस सबसे उपयुक्त है?

उदाहरण मैं एक वृक्ष संरचना के साथ एक मंच के पदों संग्रहीत करना चाहते हैं के लिए कहते हैं:

original post 
+ re: original post 
+ re: original post 
    + re2: original post 
    + re3: original post 
    + re2: original post 
+0

मुझे अपने डेटा मॉडल में एक समान समस्या है। Neo4j अच्छी तरह से काम करता है लेकिन क्षैतिज पैमाने पर नहीं होगा। मैंने सोचा कि मोंगो डीबी बेहतर होगा लेकिन चूंकि आप शीर्ष स्तर से स्कीमा को जानने के बिना एम्बेडेड "मूल पोस्ट" तत्वों को पुनर्प्राप्त नहीं कर सकते हैं, यह वास्तव में एक ग्राफ डेटाबेस से कम है। –

+2

@ श्रीधर-सरनोबत शायद भविष्य [ओरिएंट डीबी] (http://www.orientdb.org/) या [ArrangoDB] (http://www.arangodb.org/) जैसे हाइब्रिड डेटाबेस से संबंधित है जो दस्तावेज़ और ग्राफ डेटाबेस को जोड़ती है । यहां तक ​​कि PostgreSQL भी इन दिनों JSON दस्तावेजों का समर्थन करता है। – deamon

+0

सुझाव के लिए धन्यवाद। मैं उन –

उत्तर

7

यह ग्राफ डेटाबेस है। पेड़ डेटाबेस के रूप में उपयोग किया जा सकता है।

http://neo4j.com/

+3

इसके अलावा, चेकआउट http://www.orientechnologies.com/ –

+1

आज मैं चीजों को और अधिक स्पष्ट रूप से देखता हूं और सहमत हूं कि यह सामान्य ग्राफ संरचना है। यह निश्चित रूप से एक दस्तावेज़ के रूप में या एक relantional डीबी के साथ मॉडलिंग किया जा सकता है, लेकिन एक ग्राफ डीबी सबसे अच्छा फिट लगता है। और, हाँ, ओरिएंट डीबी निश्चित रूप से एक लायक है। – deamon

-2

यहाँ आप के लिए एक गैर-जवाब है। एसक्यूएल सर्वर 2008 !!!! यह रिकर्सिव प्रश्नों के लिए बहुत अच्छा है। या आप पुरानी शैली के मार्ग पर जा सकते हैं और रिकर्सन से बचने के लिए एक अलग टेबल में पदानुक्रम डेटा स्टोर कर सकते हैं।

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

+4

SQL सर्वर 2008 उपयोगी क्यों है, इसके कारण आपको कम से कम सामान्य तालिका अभिव्यक्तियों और/या XML क्षमताओं के बारे में बात करने की आवश्यकता है। – orangepips

+1

एसक्यूएल में 'पदानुक्रम' डेटाटाइप है; हालांकि, एसक्यूएल धीमी और गुंजाइश है। – theMayer

17

आपको संभवतः एक दस्तावेज़-उन्मुख डेटाबेस जैसे MongoDB या CouchDB है। http://www.mongodb.org/display/DOCS/Trees+in+MongoDB

+1

डेटा का प्रतिनिधित्व करने के लिए दृष्टिकोण पर +1 उपयोगी लिंक। – orangepips

+0

यह 'पदानुक्रमित डेटा' से कैसे संबंधित है? Evolt.org के लिए –

26

MongoDB और CouchDB प्रस्ताव समाधान है, लेकिन कार्यक्षमता में नहीं बनाया गया:

विभिन्न तकनीकों जो आप MongoDB में श्रेणीबद्ध डेटा स्टोर करने की अनुमति के उदाहरण देखें। इस SO प्रश्न को representing hierarchy in a relational database पर देखें क्योंकि मैंने देखा है कि अन्य अन्य नोएसQL समाधान इस संबंध में समान हैं; जहां आपको उस जानकारी को पुन: गणना करने के लिए अपना स्वयं का एल्गोरिदम लिखना है क्योंकि नोड्स को जोड़ा गया है, हटा दिया गया है और स्थानांतरित किया गया है। आम तौर पर आप तेजी से पढ़ने के समय (उदा। nested set) या तेज़ लिखने के समय (adjacency list) के बीच निर्णय ले रहे हैं। इन पंक्तियों के साथ अधिक विकल्पों के लिए उपर्युक्त SO प्रश्न देखें - flat table approach आपके प्रश्न के साथ सबसे अधिक गठबंधन दिखाई देता है।

एक मानक जो इन विचारों को दूर करता है Java Content Repository (जेसीआर) है, Apache JackRabbit और JBoss eXo दोनों कार्यान्वयन हैं। नोट, दृश्यों के पीछे दोनों ऊपर वर्णित पदानुक्रम बनाए रखने के लिए अभी भी कुछ प्रकार की एल्गोरिदमिक गणना कर रहे हैं। इसके अलावा, जेसीआर अनुमतियों, फ़ाइल भंडारण, और कई अन्य पहलुओं को भी संभालता है - इसलिए यह आपके प्रोजेक्ट के लिए अधिक हो सकता है।

+0

"फ्लैट टेबल दृष्टिकोण" लिंक मर चुका है। –

+0

@ मैथ्यूडटन: निश्चित। – orangepips

0

चेक MarkLogic है। आप वेबसाइट से डेमो कॉपी डाउनलोड कर सकते हैं। यह असंगठित डेटा के लिए एक डेटाबेस है और डेटाबेस के नोएसक्यूएल वर्गीकरण के तहत आता है। मुझे पता है कि असंगठित डेटा एक बहुत ही भरा हुआ शब्द है, लेकिन केवल उस डेटा के रूप में सोचें जो आरडीबीएमएस (जैसे पदानुक्रमित डेटा) की पंक्तियों और स्तंभों में अच्छी तरह फिट नहीं है।

2

Exist-db एक्सएमएल हठ के लिए श्रेणीबद्ध डेटा मॉडल लागू किया

2

ग्राफ़ डेटाबेस शायद भी इस समस्या का समाधान होगा का उपयोग कर बनाने का फैसला किया । यदि स्केलिंग के मामले में neo4j आपके लिए पर्याप्त नहीं है, तो Titan पर विचार करें, जो एचबीएस सहित विभिन्न स्टोरेज बैक-एंड पर आधारित है और इसे बहुत अच्छी तरह से स्केल करना चाहिए। यह neo4j के रूप में परिपक्व नहीं है, लेकिन यह एक बहुत ही आशाजनक परियोजना है।

0

बस सप्ताहांत को एक पूर्ण स्टैक जावास्क्रिप्ट ब्राउज़र अनुप्रयोग विकास ढांचे के लिए बैक-एंड के रूप में MUMUPS डीबी का उपयोग करके एक प्रशिक्षण पाठ्यक्रम में बिताया। उत्तम सामग्री! मैं जीपीएल के तहत एमएमपीएस के जीटीएमएम डिस्ट्रो की सिफारिश करता हूं। या वेनिला मम्प्स के लिए http://sourceforge.net/projects/mumps/?source=recommended आज़माएं। Ewd.js जेएस ढांचे के लिए http://robtweed.wordpress.com/ और MUMPS पर अधिक जानकारी देखें।

2

एलडीएपी, जाहिर है। ओपनएलडीएपी इसका छोटा काम करेगा।

संबंधित मुद्दे

 संबंधित मुद्दे