PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

क्या डेटाबेस के भीतर सरणियों का उपयोग करना खराब डिज़ाइन है?

शीर्षक का संक्षिप्त उत्तर :नहीं

थोड़ा लंबा जवाब :

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

उदाहरण:

आपके पास पोस्ट और टैग वाला एक ब्लॉग है, और प्रत्येक पोस्ट में 0 या अधिक टैग हो सकते हैं। पहली बात जो दिमाग में आती है वह है दो कॉलमों के साथ एक अलग टेबल बनाना postid और tagid और उस तालिका में टैग असाइन करें।

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

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

उदाहरण खराब हो सकता है लेकिन यह सबसे पहले दिमाग में आया।

निष्कर्ष :

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

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL डेटाबेस में आर्किटेक्चर और मेमोरी की ट्यूनिंग

  2. PostgreSQL के लिए घंटों में टाइमस्टैम्प अंतर

  3. मैं अपने डेटा से एक jsonb सरणी और वस्तुओं की सरणी कैसे वापस कर सकता हूं?

  4. एक नियम का उपयोग करके स्वचालित रूप से एक भौतिक दृश्य को ताज़ा करें या सूचित करें

  5. PostgreSQL 9.0 को Windows सेवा के रूप में पंजीकृत करें और चलाएं