2016-04-17 9 views
6

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

उत्तर

10

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

यदि नहीं, तो उन्हें एक अलग तालिका में संग्रहीत किया जाना चाहिए, प्रत्येक मूल्य एक पंक्ति लाता है, प्रत्येक ने दूसरी तालिका पर रिकॉर्ड के अभिभावक आईडी (विदेशी कुंजी) को असाइन किया है जो उन्हें समूह के रूप में "स्वामित्व" देता है।

उदाहरण के लिए, एक वैज्ञानिक उपकरण से रीडिंग का एक समूह जिसे केवल विश्लेषण के लिए संग्रह के रूप में उपयोग किया जाता है, को एक क्षेत्र में एक साथ संग्रहीत किया जाना चाहिए। इसके विपरीत, किसी ग्राहक के लिए फ़ोन नंबरों की एक सूची जिसे अक्सर व्यक्तिगत नंबर के लिए पूछताछ की आवश्यकता हो सकती है, शायद संबंधित बाल तालिका में प्रति पंक्ति एकल फोन नंबर में विभाजित होनी चाहिए।

अधिक जानकारी के लिए, "डेटाबेस सामान्यीकरण" शब्द पर खोजें।

कुछ डेटाबेस, डेटा प्रकार के रूप में एक सरणी का समर्थन करते हैं। उदाहरण के लिए, Postgres आपको कॉलम को एक-आयाम सरणी, या यहां तक ​​कि दो आयाम सरणी के रूप में परिभाषित करने की अनुमति देता है।

अपने डेटाबेस स्तंभ परिभाषा का एक प्रकार के रूप में सरणी का समर्थन नहीं करता है, तो आप तीन विकल्प हो सकता है, तो:

  • XML/JSON
    आप एक XML या JSON दस्तावेज़ में डेटा संग्रह रूपांतरण अपने डेटाबेस अपने डेटाबेस अगर उस प्रकार का समर्थन करता है। उदाहरण के लिए, Postgres में XPath का उपयोग करके XML की संग्रहण, पुनर्प्राप्ति और गैर अनुक्रमित खोज के लिए मूलभूत समर्थन है। और Postgres जेएसओएन के लिए डेटा प्रकार के रूप में उत्कृष्ट उद्योग-अग्रणी समर्थन प्रदान करता है जिसमें नेस्टेड मूल्यों पर अनुक्रमित समर्थन सहित jsonb डेटा प्रकार है जहां आने वाले JSON को आंतरिक रूप से परिभाषित बाइनरी प्रारूप में पार्स किया जाता है और संग्रहीत किया जाता है। यह सुविधा semi-structured data को स्टोर और खोज करने के लिए तथाकथित "नोएसक्यूएल" सिस्टम का उपयोग करने पर विचार करने वाले मुख्य कारणों में से एक को संबोधित करती है।
  • टेक्स्ट
    टेक्स्ट के रूप में स्टोर करने के लिए अपने डेटा का स्ट्रिंग प्रस्तुति बनाएं।
  • बीएलओबी
    बीएलओबी के रूप में स्टोर करने के लिए एक बाइनरी मान बनाएं।
संबंधित मुद्दे

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