क्या पोस्टग्रेज़ में किसी तालिका के लिए प्राथमिक कुंजी नहीं होने पर कोई कमी है? चूंकि सभी डेटा ढेर में अनियंत्रित रूप से संग्रहीत किया जाता है, वैसे भी प्राथमिक कुंजी एक अद्वितीय कुंजी और एक ही समय में एक इंडेक्स को लागू करने का एक तरीका है? या क्या कोई मौलिक विशेषता है कि एक प्राथमिक कुंजी तालिका में एक तालिका के विपरीत प्रदान करती है जिसमें प्राथमिक कुंजी नहीं है?पोस्टग्रेस कोई प्राथमिक कुंजी ड्रॉबैक
उत्तर
प्रति Postgres प्रलेखन (http://www.postgresql.org/docs/9.2/static/sql-createtable.html):
तकनीकी तौर पर, प्राथमिक कुंजी केवल अद्वितीय और नहीं का एक संयोजन है न्यूल, लेकिन कॉलम के सेट को प्राथमिक कुंजी के रूप में पहचानने से स्कीमा के डिज़ाइन के बारे में मेटाडेटा भी प्रदान करता है, क्योंकि प्राथमिक कुंजी का तात्पर्य है कि अन्य सारणी पंक्तियों के लिए अद्वितीय पहचानकर्ता के रूप में कॉलम के इस सेट पर भरोसा कर सकती हैं।
अनुभव से, मैंने उनके बिना बहुत सारी टेबल बनाई हैं। प्राथमिक कुंजी नहीं होने के लिए सबसे बड़ी कमी में से एक यह है कि आपके पास विदेशी कुंजी के माध्यम से कोई संदर्भित अखंडता जांच नहीं हो सकती है - क्योंकि उस संबंध के लिए एक की आवश्यकता होती है। मुझे लगता है कि कुछ प्रतिकृति समाधानों के लिए प्राथमिक कुंजी, या प्रति पंक्ति एकल स्तंभ पहचानकर्ता की आवश्यकता होती है।
आह, प्रतिकृति मुद्दे के बारे में अच्छा बिंदु। वह पूरी तरह से मेरे दिमाग फिसल गया। हालांकि मेरे पास प्रत्येक पंक्ति में एक अद्वितीय यूयूआईडी है, मुझे यह सुनिश्चित करना चाहिए कि कोई पीके प्रतिकृति समस्या नहीं होगी (इसके लिए कोई विदेशी कुंजी नहीं है, इसलिए कोई समस्या नहीं है)। धन्यवाद। – AlexGad
एक और मुद्दा जो दिमाग में आ जाता है वह यह है कि अधिकांश ओआरएम (उदा। डीजेगो) में उन तालिकाओं से निपटने में समस्याएं होती हैं जिनमें प्राथमिक कुंजी नहीं होती है। इसलिए, यदि कभी भी तालिका के शीर्ष पर यूआई डालने की आवश्यकता है, तो यह उस पर काम कर रहा है जिस पर जीवन थोड़ा मुश्किल हो सकता है। कोई बड़ा सौदा नहीं है, लेकिन एक विचार हो सकता है (डेटा के आधार पर और आपकी कंपनी/टीम के भीतर क्या हो रहा है)। –
एक विदेशी कुंजी बाधा लक्ष्य कॉलम पर 'अद्वितीय' सूचकांक की आवश्यकता होती है। प्राथमिक कुंजी नहीं है। –
- 1. कोई प्राथमिक कुंजी
- 2. कोई प्राथमिक कुंजी
- 3. कोई प्राथमिक कुंजी
- 4. कोई प्राथमिक कुंजी
- 5. कोई प्राथमिक कुंजी
- 6. कोई प्राथमिक कुंजी
- 7. पोस्टग्रेस में प्राथमिक कुंजी को परिभाषित करने के तरीके में कोई अंतर?
- 8. प्राथमिक कुंजी
- 9. प्राथमिक कुंजी
- 10. कुंजी 'प्राथमिक'
- 11. प्राथमिक कुंजी
- 12. प्राथमिक कुंजी
- 13. प्राथमिक कुंजी
- 14. प्राथमिक कुंजी
- 15. प्राथमिक कुंजी
- 16. प्राथमिक कुंजी
- 17. प्राथमिक कुंजी
- 18. MySQL लोड डेटा INFILE - कोई प्राथमिक कुंजी
- 19. अनन्य कुंजी बनाम प्राथमिक कुंजी?
- 20. पोस्टग्रेस
- 21. SQLAlchemy: यौगिक प्राथमिक कुंजी
- 22. एक समग्र प्राथमिक कुंजी
- 23. नकारात्मक प्राथमिक कुंजी
- 24. प्राथमिक कुंजी, अद्वितीय कुंजी और उम्मीदवार कुंजी
- 25. SQLite प्राथमिक कुंजी जोड़ें
- 26. मौजूदा समग्र प्राथमिक कुंजी
- 27. प्राथमिक कुंजी डेटाटाइप
- 28. मल्टी-कॉलम प्राथमिक कुंजी
- 29. प्राथमिक कुंजी फ़ील्ड
- 30. सी #: प्राथमिक कुंजी
प्राथमिक कुंजी के बिना किसी तालिका में रिकॉर्ड अपडेट करने में आप कैसे संभालेंगे? – Olaf
एकल पंक्तियों को पुनर्प्राप्त करने की आवश्यकता नहीं है और पंक्तियां कभी अपडेट नहीं की जाती हैं, केवल डाली जाती हैं। हालांकि पंक्तियों में व्यक्तिगत पहचान (यूयूआईडी) होती है, फिर भी वे केवल श्रेणियों में ही पकड़ लेते हैं। मेरे पास श्रेणियों पर इंडेक्स हैं, लेकिन अनन्य कुंजी पर इंडेक्स रखने में कोई बात नहीं है अगर इसे टाला जा सके। – AlexGad
मैं विशिष्ट प्रश्न पूछ रहा हूं, क्योंकि मैं एक SQL सर्वर पृष्ठभूमि से आया हूं और यह तय करता हूं कि किसी तालिका पर क्लस्टर्ड इंडेक्स होना है या केवल ढेर बनाने के लिए एक महत्वपूर्ण निर्णय है। पोस्टग्रेज़ के साथ, यह निर्णय व्यर्थ लगता है क्योंकि डेटा हमेशा तालिका में अनियंत्रित रूप से संग्रहीत होता है। हालांकि, मैं यह सुनिश्चित करना चाहता हूं कि मैं इस धारणा में सही हूं। पोस्टग्रेस बनाम में पीके का लाभ क्या है, एक अद्वितीय बाधा और एक अलग इंडेक्स कहें? क्या कोई भेद है या क्या यह उन सुविधाओं को प्रदान करने के लिए सिर्फ एक शॉर्टेंड तरीका है? – AlexGad