एक PostGIS तालिका में ज्यामिति के प्रकारों को मिलाना


24

मैं निम्नलिखित समस्या का सामना कर रहा हूँ। मुझे Oracle डेटाबेस से PostgreSQL + PostGIS में माइग्रेट करना है। वर्तमान में सभी प्रकार के सभी ज्यामिति एक तालिका में संग्रहीत किए जाते हैं और प्रत्येक रिकॉर्ड में एक "ढक्कन" फ़ील्ड होता है जो एक ही परत की विशेषताओं को इंगित करता है।

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


आप किस प्रकार के "प्रकार" के बारे में बात कर रहे हैं? क्या यह पॉलिऑन, लाइन और अंक है? या क्या यह "सड़कों", "नदियों", आदि के प्रकार हैं?
पाब्लो

मेरा मतलब है कि पॉलीमोंस, लाइन्स और पॉइंट्स जैसे जिओमेट्रीज के प्रकार।
drnextgis

जवाबों:


24

यदि आपको तीसरे पक्ष के समर्थन की आवश्यकता नहीं है और उन्हें केवल एक ही तालिका में रखकर ठीक प्रकार से काम करने की आवश्यकता नहीं है। वैकल्पिक रूप से आप इनहेरिटेंस मॉडल का उपयोग कर सकते हैं जैसा कि एक्शन में पोस्टजीआईएस के अध्याय 3 में चर्चा की गई है।

http://www.postgis.us/chapter_03_edition_1

आर्किटेक्चर के नजरिए से पोस्टगिस वास्तव में परवाह नहीं करता है अगर एक क्वेरी में कई अलग-अलग प्रकारों का उपयोग किया जाता है। यदि यह ओरेकल में आपके लिए अच्छा प्रदर्शन करता है तो यह वैसा ही होगा जैसा कि PostGIS में बेहतर प्रदर्शन करने वाला नहीं है।

इसे विभाजित करने के 2 कारण हैं (और या तो बाद में आवश्यकतानुसार किया जा सकता है): 1) विभिन्न प्रकार के उन लोगों को सम्मिलित करने से रोकें जिन्हें आप नहीं चाहते हैं जैसे कि ज्यामिति संग्रह, परिपत्र तार और क्या नहीं (जो आप मैन्युअल रूप से एक बाधा को परिभाषित कर सकते हैं। )

2) यदि आपके पास एक अरब अंक और 1000 बहुभुज हैं, और बहुभुज परीक्षणों में बहुत सारे बिंदु हैं, तो गति बहुत बेहतर है यदि आप क्वेरी करते हैं और अपने साथ जुड़ते हैं - इसका एक अरब के विरुद्ध - 1000 रिकॉर्ड तालिका के विपरीत एक बिलियन से बिलियन रिकॉर्ड टेबल। यह किसी भी स्थानिक डेटाबेस के लिए होगा जो मुझे लगता है (PostGIS के लिए विशिष्ट नहीं)। यह सभी संबंधपरक प्रश्नों के लिए सही है, जिनका मैं भी अनुमान लगाऊंगा (स्थानिक प्रश्नों के लिए विशिष्ट नहीं)।


1
अब वापस आने वाले लोगों के लाभ के लिए: पोस्टजीस इन एक्ट्स 2 के संस्करण में, इसे 14. में ले जाया गया।
yeedle

11

यह वास्तव में मुझे परेशान करता है। मुझे लगता है कि ऐसा इसलिए है क्योंकि मैंने बहुत सी CAD फाइलें एक परत पर डेटा के साथ देखी हैं, केवल रंग से विभेदित है।

यह क्या करने के लिए नीचे आता है वास्तव में संरचना , या विशेषता द्वारा डेटा को व्यवस्थित करने के बीच एक विकल्प है ।

उस विकल्प को देखते हुए, मैं हमेशा डेटा संरचना के माध्यम से अपने डेटा को व्यवस्थित करने के लिए जाऊंगा।

एक शुरुआत के लिए, जब डेटा संसाधित आप एक कम घेरा के माध्यम से कूद करने के लिए है (उदाहरण के लिए चयन क, ख, ग मेज से जहां आईडी = एक्स के लिए विरोध के रूप में ए, बी, मेज से ग का चयन करें जहां आईडी = एक्स और ढक्कन = Y )

फिर, विचार करें कि डेटाबेस कई तालिकाओं की अनुमति क्यों देते हैं - यदि कोई डेटा प्रारूप आपको विशेष डेटा संरचना प्रदान करता है, तो आपको लगता है कि यदि आप उनका उपयोग करते हैं तो वे डेटा को अधिक कुशलता से संसाधित करेंगे।

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

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


1
मैं आपसे सहमत हूं कि ओपी का परिदृश्य यकीनन गंदा है (हम बैकस्टोरी को नहीं जानते हैं), लेकिन आप इसकी समीक्षा कर रहे हैं कि यह थोड़ा नाटकीय है। यह लगभग प्रलयकारी उथल-पुथल नहीं है जैसा कि आप इसका वर्णन करते हैं। मुझे परवाह नहीं है अगर यह दिन-प्रतिदिन के उपयोग के लिए या एक नई प्रणाली / वास्तुकला में ईटीएल के लिए है, तो यह पूरी बात कुछ विचारों और कुछ उचित सूचकांकों के साथ आसानी से सरल की जा सकती है, और इन्हें मिनटों में लिखा जा सकता है। .अगर कई अनूठे lidमूल्य हैं।
elrobis
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.