आधिकारिक PostgreSQL कैपिटलाइज़ेशन सम्मेलन [बंद]


14

क्या DB, तालिका और फ़ील्ड नामों में कैपिटलाइज़ेशन के संबंध में एक आधिकारिक PostreSQL सम्मेलन है?

आधिकारिक साइट पर उदाहरण लोअरकेस और सुझाव है कि _शब्द जुदाई, और मुझे आश्चर्य है कि क्या इस नीति अधिकारी है।

CREATE TABLE films (
    code        char(5) CONSTRAINT firstkey PRIMARY KEY,
    title       varchar(40) NOT NULL,
    did         integer NOT NULL,
    date_prod   date,
    kind        varchar(10),
    len         interval hour to minute
);

1
प्रलेखन के इस भाग की भी जाँच करें, पहचानकर्ताओं के
ypercube

जवाबों:


20

मैं मूल रूप से Verace की टिप्पणियों को मिरर करने जा रहा हूं और इसे स्टेट करता हूं, जिससे यह अर्ध-आधिकारिक हो जाता है:

कोई भी सबसे अच्छा अभ्यास नहीं है जो हर परिस्थिति को कवर करेगा। निम्नलिखित बातें निम्नलिखित धारणाएँ बनाती हैं (और यदि आपने ऐसा नहीं किया है तो क्या करें):

  • आप पहले ही अपनी टीम के साथ इस बारे में चर्चा कर चुके हैं (जो लोग खुद काम कर रहे हैं, उन्हें अक्सर अपना मन बनाना पड़ता है)
  • आपकी टीम पर पहले से ही SQL के लिए कोई औपचारिक शैली परिभाषा नहीं है (अन्यथा आप हमसे नहीं पूछेंगे)
  • किसी भी कोड के लिए कोई औपचारिक शैली की परिभाषा नहीं है (अन्य भाषाओं के लिए पहले से स्थापित समान मूल परंपराओं का पालन करें और एक शैली को औपचारिक रूप दें)

तो इस बारे में बाकी कुछ राय है लेकिन अनुभव के आधार पर

  1. जब टेबल के नाम की बात आती है
    1. आपको एकवचन इकाई नामों के लिए जाना चाहिए (यह प्रलेखन आसान बनाता है)
    2. आपको यहां पास्कल केस का उपयोग करना चाहिए
  2. जब क्षेत्र के नाम की बात आती है
    1. अपने क्षेत्र के नामों पर कैमलकेस का उपयोग करें
    2. जब तक निश्चित रूप से बहुवचन के रूप में समझ में नहीं आता है तब तक एकवचन नाम का उपयोग करें (यह लगभग कभी नहीं करता है)
  3. जब यह आपके स्वयं के फ़ंक्शन या संग्रहीत कार्यविधि नामों की बात आती है
    1. अंडरस्कोर_सेपरेशन का उपयोग करें
    2. पैरामीटर के लिए फ़ील्ड नामकरण का उपयोग करें
  4. जब यह डेटाबेस फ़ंक्शंस या भाषा नामों में बनाया जाता है (उदाहरण के लिए चुनें)
    1. जब तक कि इसके लिए एक निश्चित तरीके से पूंजी लगाने की आवश्यकता न हो, सभी CAPS का उपयोग करें
    2. उचित या आवश्यक क्या है, यह जानने के लिए अपनी भाषा के लिए एपीआई जानें
  5. जब स्पेसिंग की बात आती है
    1. बहुत सारे लोग कीवर्ड के लिए कॉलम संरेखण का उपयोग करते हैं और उन चीजों के लिए इंडेंटेशन करते हैं जो कीवर्ड नहीं हैं
    2. पंक्ति की शुरुआत में बहुत से लोग कॉमा का उपयोग करते हैं जब प्रत्येक पंक्ति पर फ़ील्ड अलग हो जाते हैं (इससे चयन सूची से किसी विशिष्ट फ़ील्ड को टिप्पणी करना आसान हो जाता है)
    3. कभी भी चीजों के नाम के हिस्से के रूप में रिक्त स्थान का उपयोग न करें, यहां तक ​​कि रिटर्न वैल्यू हेडर के लिए भी नहीं।
  6. जब विराम चिह्न की बात आती है
    1. कोष्ठक - उन्हें उपयोग करें। वे आज़ाद हैं। मे वादा करता हु।
    2. अर्धविराम - उनका उपयोग करें। वे तुम्हें तोड़ने नहीं जा रहे हैं। वे आपको अपना कोड सोचने पर मजबूर करते हैं। और वे अच्छी स्वच्छता हैं।
    3. कैरिज रिटर्न्स - एक बार फिर, वे स्वतंत्र हैं;; और अपने कोड को पठनीय बनाते हैं।

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


3
+1 के लिए "वास्तव में महत्वपूर्ण बिट यह सुनिश्चित करना है कि आप हर जगह एक विशिष्ट शैली स्थापित करें और उसका उपयोग करें।" संगति ही कुंजी है। इसके बिना, आपको उन सामानों के बारे में सोचना होगा जिनके बारे में आपको कभी नहीं सोचना चाहिए।
मैक्स वर्नोन

4
खैर, CamgCase और PostgreSQL में PascalCase थोड़ा दर्दनाक हैं। यदि आप वास्तव में इस तरह के नाम रखना चाहते हैं, तो आपको उन्हें उद्धृत करना होगा, अन्यथा सिस्टम चुपचाप उन्हें कम कर देता है (मैंने लगभग डिकैपीटलाइज़ लिखा था, जो भी संघों में गड़बड़ी हो सकती है)।
dezso

डेटाबेस के नाम के बारे में क्या? मैं का उपयोग करना चाहिए database_name, database-name, DatabaseName, databaseName, आदि?
14:11 बजे ma11hew28

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

@AndreKR यहां बात है: मुझे उम्मीद है कि सॉफ्टवेयर डेवलपर्स वयस्क होंगे, यह जानने के लिए कि प्रलेखन कैसे पढ़ना है, और उनकी टीम के साथ चर्चा करना कि लगातार कोड कैसे लिखना है। यह उत्तर सामुदायिक विकी है, जिसका अर्थ है कि किसी का भी संपादन करना और उसमें सुधार करना स्वागत योग्य है। मैं बिल्कुल नहीं कह सकता "यह एकमात्र तरीका है" और सिर्फ इसलिए कि कुछ लोग लोअरकेस में सभी उदाहरण देते हैं इसका मतलब यह नहीं है कि यह जीवन का एकमात्र तरीका है। आपको अपना रास्ता खुद ही मिल जाएगा, जो इस उत्तर की भावना थी। कृपया इसे बेहतर बनाने के लिए इस सामुदायिक उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें। धन्यवाद!
jcolebrand

4

एक त्वरित Google कई साइटों को प्रकट करेगा जो सर्वोत्तम प्रथाओं का संकेत देते हैं। मैं केवल दो बातें कहूंगा - कभी भी रिक्त स्थान "माई टेबल नेम" का उपयोग न करें (अलग-अलग भागने के तंत्र के कारण पोर्टिंग असंभव हो जाता है; वही किसी भी गैर-अल्फ़ान्यूमेरिक वर्ण के लिए जाता है)। इन प्रकार के यंत्रों के साथ, आपको आमतौर पर मामले का भी सम्मान करना होगा। अंग्रेजी (या आपकी खुद की) भाषा में पर्याप्त अक्षर और शब्द हैं और पहचानकर्ता की लंबाई काफी लंबी है (मुझे किसी भी सिस्टम को नहीं पता है जिसमें पहचानकर्ता_प्रवाह <32 है, पोस्टग्रेक्यूएल 64 है)। और कभी भी SQL कीवर्ड (जो RDBMS द्वारा भिन्न होता है) का उपयोग न करें जो एक ही काम करेगा।

जैसी मूर्तियाँ

SELECT "Field" FROM "Table";

मान्य हो सकता है! बिल्कुल महत्वपूर्ण बात यह है कि एक स्पष्ट और अपेक्षाकृत सरल सम्मेलन है और फिर उसी पर टिके रहना है। लोगों की राय अलग-अलग होती है, जैसा कि आपको पता चलेगा - विषय के चारों ओर पढ़ें और जो आपके लिए "सही लगता है" चुनें। इन साइटों को देखें 1 , 2 , 3 , 4 , 5 , ... (और भी कई हैं)।


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

(Singular_table_name / plural_table_name) बहस के दोनों पक्षों में कई चिकित्सक हैं जिनकी राय अन्य क्षेत्रों में सम्मान करती है। मैं खुद एक "सिंगल" आदमी हूँ - यदि आप एक परमाणु ऊर्जा संयंत्र चला रहे हैं, तो आपके पास एक मेज हो सकती है, जिसे catastrophic_meltdown कहा जाता है, जिसमें आप कभी भी कोई रिकॉर्ड नहीं देखना चाहते हैं! अपनी प्राथमिक कुंजियों को एक प्रत्यय प्रदान करें और उन्हें चाइल्ड टेबल में Parent_Table_Name_FK के रूप में संदर्भित करें - यही मैं करता हूं। इसके बाद, यह आसान-पीसे है! कैप्स / नो-कैप्स के रूप में, मेरी एसक्यूएल स्क्रिप्ट में ऊंट-केस (अनक्वॉटेड) है, मेरे स्टेटमेंट हो सकते हैं या नहीं भी।
वेअर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.