MySQL

2010-11-21 13 views
8

मैं एक वनस्पति डेटाबेस जहां पौधों को अपने वर्गीकरण द्वारा व्यवस्थित किया जाएगा बनाने हूँ में वर्गीकरण तालिका बनाना: किंगडम जाति कक्षा आदेश परिवार जीनस प्रजातिMySQL

मैं

जीवन डोमेन आलेख Managing Hierarchical Data in MySQL द्वारा दिए गए उदाहरण का उपयोग करने पर विचार कर रहा था, हालांकि यह उपरोक्त सूची को तालिका के अंदर रिकॉर्ड के रूप में जोड़ रहा है .... और मुझे यकीन नहीं है कि यह करने के लिए सबसे अच्छी बात है क्योंकि मैं हवी एनजी प्रति प्रजातियां और प्रति परिवार कई जीनस और इतने पर। इस समस्या से निपटने का सबसे अच्छा तरीका आप क्या सुझाव देंगे। अग्रिम में धन्यवाद।

+1

mysql में वर्गीकरण तालिकाओं का निर्माण: [यहां लिंक विवरण दर्ज करें] (http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/) – rd42

+0

@ rd42 +1 महान लेख! – cawecoy

उत्तर

11

मैंने इसी तरह के डेटा के साथ काम किया, और मैंने इसे 2 भागों में बनाया। PostgreSQL वाक्यविन्यास में।

पहले वर्गीकरण संरचना (परिवार, वंश, प्रजाति, ...) है:

CREATE TABLE taxonomic_units (
    id   serial  PRIMARY KEY, 
    name  varchar(20) NOT NULL, 
    parent_id integer  REFERENCES taxonomic_units(id) 
); 

1 | Life | NULL 
2 | Domain | 1 
... 
7 | Family | 6 
8 | Genus | 7 
9 | Species | 8 

दूसरा विवरण और वनस्पति डेटा का भंडारण है:

CREATE TABLE taxons (
    id     serial  PRIMARY KEY, 
    suptaxon_id  integer  REFERENCES taxons(id), 
    taxonomic_unit_id integer  NOT NULL REFERENCES taxonomic_units(id), 
    name    varchar(50) NOT NULL, 
    authority   varchar(50) 
); 

100 | NULL | 8 | Ocimum | L. 
101 | 100 | 9 | basilicum | L. 
102 | 100 | 9 | gratissim | L. 
+1

यह सबसे अच्छा जवाब मैं कभी इतने पर देखा है हो सकता है। अवधि। –

0

यह एक ग्राफ की तरह लगता है। मुझे आश्चर्य होगा कि NEO4J बेहतर विकल्प होगा।

3

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

लेख से

:

... श्रेणीबद्ध डेटा के प्रबंधन क्या एक संबंधपरक डेटाबेस के लिए है नहीं है।

http://en.wikipedia.org/wiki/Hierarchical_database_model

श्रेणीबद्ध डेटा मॉडल कर्षण खो के रूप में कॉड के रिलेशनल मॉडल लगभग सभी मुख्य धारा डेटाबेस प्रबंधन प्रणालियों द्वारा इस्तेमाल किया वास्तविक मानक बन गया:

वास्तव में, इसके वास्तव में क्या यह करने के लिए है ।

मैं पहली बार एक राय यह है कि आपके टेबल के सभी ताकि आप इन अपने कॉलम के रूप में होता है में शामिल हो गए लिखना होगा:

Life Domain Kingdom Phylum Class Order Family Genus Species 

अब आप उस दृश्य किसी भी तरह से आप की तरह क्वेरी कर सकता है और चिंता करने की ज़रूरत नहीं किसी भी जुड़ने के बारे में। आसान :)

0

श्रेणीबद्ध का प्रतिनिधित्व करने के कई तरीके हैं एक रिलेशनल डेटाबेस में डेटा, यद्यपि एक ड्यूएसक्यूएल समाधान का उल्लेख @duffymo के साथ काम करना आसान हो सकता है। तो एक आरडीबीएमएस, see my question on the topic for an enumeration of a half dozen possibilities मानते हैं। आपकी स्थिति के लिए, मैं परिवार के पेड़ को आसान बनाने के लिए एक भौतिक मार्ग के साथ नेतृत्व करेंगे। यदि पदानुक्रम नियमित रूप से बदलता है तो शायद मैं एक आसन्न सूची के रूप में भी मॉडल करता हूं और एक ट्रिगर का उपयोग करके भौतिक मार्ग को अद्यतन करता हूं।

2

आप http://itis.gov से पूरा वर्गीकरण डेटा डाउनलोड कर सकते हैं और डेटा और अधिक या कम मासिक अद्यतन किया जाता है। डेटाबेस में हर प्रजाति यह ऊपर सभी स्तरों, एक ब्रेडक्रंब स्ट्रिंग या एक फाइल सिस्टम पथ की तरह की एक स्ट्रिंग है - डेटा वे प्रदान एक materialized पथ भी शामिल है।

मैं अपनी प्रस्तुति Models for Hierarchical Data में एक डेमो डिजाइन करने के लिए इस डेटा का उपयोग किया। मैं बंद तालिका में materialized पथ डेटा बदल दिया।