शीर्षक का संक्षिप्त उत्तर :नहीं
थोड़ा लंबा जवाब :
उपयुक्त होने पर आपको सरणियों का उपयोग करना सीखना चाहिए। एरेज़ स्वयं खराब डिज़ाइन नहीं हैं, वे एक चरित्र भिन्न क्षेत्र (वर्णों की सरणी, नहीं?) के रूप में परमाणु हैं और वे हमारे जीवन को आसान बनाने और हमारे डेटाबेस को तेज़ और हल्का बनाने के लिए मौजूद हैं। पोर्टेबिलिटी पर विचार करने में समस्याएँ हैं (अधिकांश डेटाबेस सिस्टम सरणियों का समर्थन नहीं करते हैं, या पोस्टग्रेज़ से अलग तरीके से ऐसा करते हैं)
उदाहरण:
आपके पास पोस्ट और टैग वाला एक ब्लॉग है, और प्रत्येक पोस्ट में 0 या अधिक टैग हो सकते हैं। पहली बात जो दिमाग में आती है वह है दो कॉलमों के साथ एक अलग टेबल बनाना postid
और tagid
और उस तालिका में टैग असाइन करें।
यदि हमें टैगिड के साथ पोस्ट के माध्यम से खोज करने की आवश्यकता है, तो अतिरिक्त तालिका आवश्यक है (निश्चित रूप से उपयुक्त अनुक्रमणिका के साथ)।
लेकिन अगर हम केवल टैग की जानकारी को पोस्ट की अतिरिक्त जानकारी के रूप में दिखाना चाहते हैं, तो हम आसानी से पोस्ट की तालिका में एक पूर्णांक सरणी कॉलम जोड़ सकते हैं और वहां से जानकारी निकाल सकते हैं। यह अभी भी अतिरिक्त तालिका के साथ किया जा सकता है, लेकिन एक सरणी का उपयोग करने से डेटाबेस का आकार कम हो जाता है (कोई अतिरिक्त टेबल या अतिरिक्त पंक्तियों की आवश्यकता नहीं होती है) और हमें एक कम तालिका में शामिल होने के साथ हमारे चुनिंदा प्रश्नों को निष्पादित करने की अनुमति देकर क्वेरी को सरल बनाता है और समझने में आसान लगता है मानव आँख से (आखिरी हिस्सा देखने वाले की आँख में है, लेकिन मुझे लगता है कि मैं यहाँ बहुमत के लिए बोलता हूँ)। यदि हमारे टैग पहले से लोड हैं, तो एक भी शामिल होना आवश्यक नहीं है।
उदाहरण खराब हो सकता है लेकिन यह सबसे पहले दिमाग में आया।
निष्कर्ष :
सरणियाँ आवश्यक नहीं हैं। अगर आप इनका गलत इस्तेमाल करते हैं तो ये हानिकारक हो सकते हैं। आप उनके बिना रह सकते हैं और आपके पास एक बढ़िया, तेज़ और अनुकूलित डेटाबेस हो सकता है। जब आप पोर्टेबिलिटी पर विचार कर रहे हों (उदाहरण के लिए अन्य डेटाबेस के साथ काम करने के लिए अपने सिस्टम को फिर से लिखना) तो आपको सरणी का उपयोग नहीं करना चाहिए।
यदि आप सुनिश्चित हैं कि आप पोस्टग्रेज़ के साथ रहेंगे, तो आप सुरक्षित रूप से उन सरणियों का उपयोग कर सकते हैं जहाँ आपको उपयुक्त लगे। वे एक कारण से मौजूद हैं और न तो खराब डिजाइन हैं और न ही गैर-अनुपालन। जब आप उन्हें सही स्थानों पर उपयोग करते हैं, तो वे डेटाबेस संरचनाओं और आपके कोड की सरलता के साथ-साथ स्थान और गति अनुकूलन में थोड़ी मदद कर सकते हैं। बस इतना ही।