2009-02-23 9 views
6

स्टोर करने के लिए किसी ने एसक्यूएल सर्वर 2008 हाइरार्कियल आईडी प्रकार का उपयोग किया है मेरे पास वंशावली डेटाबेस (वास्तव में भेड़ों के बारे में) है, जिसका प्रयोग प्रजनकों द्वारा जेनेटिक सूचनाओं के अनुसंधान के लिए किया जाता है। प्रत्येक रिकॉर्ड में मैं पिताजी और मातृद को स्टोर करता हूं। एक अलग तालिका में मैं पूरी तरह से 'रोल अप' जानकारी संग्रहीत करता हूं ताकि मैं पूरे डेटाबेस के माध्यम से बिना किसी जानवर के पूरे परिवार के पेड़ को तुरंत बता सकूं ...वंशावली डेटा

हाल ही में SQL सर्वर 2008 में निर्मित पदानुक्रमित प्रकार का पता चला, सतह यह वादा करता है, लेकिन मैं सोच रहा हूं कि किसी ने यह जानने के लिए पर्याप्त उपयोग किया है कि यह मेरे प्रकार के ऐप (यानी दो माता-पिता, एकाधिक बच्चे) में उचित होगा या नहीं? मेरे द्वारा अब तक मिले/पढ़े गए सभी नमूने प्रबंधक/कर्मचारी प्रकार के संबंधों से निपटते हैं जहां किसी दिए गए बॉस के पास कई कर्मचारी हो सकते हैं, और प्रत्येक कर्मचारी के पास एक मालिक हो सकता है।

मेरे ऐप की ज़रूरतें समान हैं, लेकिन काफी समान नहीं हैं।

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

मैं भी उत्सुक हूं कि इस नए डेटा प्रकार का उपयोग करके लोग किस प्रकार के प्रदर्शन देख रहे हैं, वही काम करते हैं।

उत्तर

3

मैं नहीं देख सकता कि यह कैसे काम करेगा; नियमित पदानुक्रम में, रूट के लिए एक ही श्रृंखला होती है, इसलिए यह पथ को संग्रहीत कर सकता है (जो बाइनरी है) प्रत्येक नोड में है। हालांकि, कई माता-पिता के साथ, यह संभव नहीं है: भले ही आप matriarchy और partiarchy विभाजित, भले ही आप अभी भी 1 मां, 2 दादी, 4 महान-दादी मां, (यहां तक ​​कि कुछ और "दिलचस्प" स्कैनरियो में शामिल नहीं हो संभवतः, पशुधन के साथ)। एन्कोड करने के लिए कोई भी तार्किक पथ नहीं है, इसलिए नहीं: मुझे नहीं लगता कि यह आपके मामले में काम कर सकता है।

हालांकि, मुझे सही होने में खुशी है।

+0

यह मेरा पहला विचार था ... अब मैं अपने सिर को पेड़ की अवधारणा को "उल्टा" के रूप में प्राप्त करने की कोशिश कर रहा हूं। अर्थात। प्रत्येक बच्चा एक मालिक है, और माता-पिता कर्मचारी हैं ... यह देखने के लिए कि मॉडल क्या है, यह देखने के लिए पूरी तरह से सोचा नहीं है ... –

+2

यह अतिरिक्त महंगा बनाता है (आपको नए भेड़ के सापेक्ष सबकुछ फिर से समझना होगा) , और संभवतः (अनचाहे) अभी भी काम नहीं करता है जब तक कि आप प्रत्येक को एक भेड़ के बच्चे को प्रत्येक ईव को कैप न करें ... –

+0

क्या आप इस पेड़ के ऊपर की ओर उड़ नहीं पाएंगे? बच्चे से माता-पिता, दादा दादी आदि से शुरू करना –

5

मानते हैं कि प्रत्येक भेड़ में एक पुरुष माता-पिता और एक मादा माता-पिता होता है, और कोई भी भेड़ अपने माता-पिता नहीं हो सकता है (ओविन टेंपलल पैराडाक्स की ओर अग्रसर होता है), फिर दो पदानुक्रमों का उपयोग करने के बारे में क्या?

CREATE TABLE dbo.Sheep(
    MotherHID hierarchyid NOT NULL, 
    FatherHID hierarchyid NOT NULL, 
    Name int NOT NULL 
) 
GO 
ALTER TABLE dbo.Sheep 
ADD CONSTRAINT PK_Sheep PRIMARY KEY CLUSTERED (
    MotherHID, 
    FatherHID 
) 
GO 

उन्हें एक संयुक्त पी लेने से, आप विशेष रूप से उसकी मातृ पदानुक्रम और यह का पैतृक पदानुक्रम के उत्पाद के रूप में प्रत्येक भेड़ की पहचान होगी।

कुछ अंतर्निहित समस्या यहां छिपी हो सकती है, इसलिए कुछ सरल प्रोटोटाइप के साथ सतर्कता से आगे बढ़ें - लेकिन शुरुआत में ऐसा लगता है कि यह आपके लिए काम करेगा।

2

पिता और मां को अच्छी तरह से काम करने के लिए दो अलग-अलग पदानुक्रमों का उपयोग करना।

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

मुझे कम से कम भेड़ के लिए - वंश के लिए पदानुक्रम के लिए स्वाभाविक रूप से गलत कुछ नहीं दिख रहा है। लोगों के लिए, "इस व्यक्ति ने उस व्यक्ति को जन्म दिया" से संबंध अधिक जटिल हैं, इसलिए स्पष्ट रूप से उपयोग प्रजनन तक ही सीमित होगा।

0

एसक्यूएल सर्वर पदानुक्रम कई वंशावली विश्लेषणात्मक प्रश्नों के लिए एक मजबूत समाधान नहीं है। यह ORDPATH पर आधारित है और मैंने इसे वंशावली में थोड़ी देर के लिए उपयोग किया है; लेकिन वंशावली में बहुत से परिदृश्य हैं जिन्हें निर्देशित विश्वकोश ग्राफ के लिए ORDPATH विधियों के साथ आसानी से संबोधित नहीं किया जा सकता है। एक ग्राफ डेटाबेस वंशावली के लिए बहुत अधिक मजबूत और उपयुक्त है। मैं Neo4j का उपयोग करता हूं: http://stumpf.org/genealogy-blog/graph-databases-in-genealogy

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