SQL Academy · पाठ

Keys और Types चुनना

BIGSERIAL बनाम UUID primary keys चुनिए, TEXT और VARCHAR(n) में निर्णय लीजिए और हर column के लिए सही type चुनिए।

पाठ 2, कुल 4 में से13 चरण

Keys और Types चुनना, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

प्राथमिक कुंजी चुनना

तीन वास्तविक विकल्प:

  1. BIGSERIAL — लगातार बढ़ने वाला 64-बिट पूर्णांक
  2. UUID — 128-बिट वैश्विक रूप से अद्वितीय मान
  3. प्राकृतिक कुंजी — वास्तविक दुनिया का पहचानकर्ता (ईमेल, ISBN)

BIGSERIAL कब बेहतर होता है

अधिकांश ऐप्लिकेशन के लिए डिफ़ॉल्ट विकल्प:

  • छोटा (8 बाइट), तेज़ अनुक्रमणिका, कैश के लिए अनुकूल
  • एकदिशीय वृद्धि → हाल का डेटा अनुक्रमणिका के अंत में समूहित होता है
  • URL में पढ़ने योग्य (जैसे /posts/42)

UUID कब बेहतर होता है

इन स्थितियों में UUID चुनें:

  • आपको विश्व स्तर पर अद्वितीय ID चाहिए (कई डेटा केंद्रों वाले या ऑफ़लाइन-प्रथम ऐप्लिकेशन)
  • आप नहीं चाहते कि URL में ID से व्यावसायिक मात्रा का पता चले
  • आप INSERT से पहले क्लाइंट-साइड पर ID बनाना चाहते हैं

लागत: 16 बाइट (BIGINT के 8 बाइट की तुलना में), और v4 UUID अनुक्रमणिका में INSERT को यादृच्छिक बना देते हैं।

प्राकृतिक कुंजियाँ जोखिमपूर्ण क्यों हैं

ईमेल बदलते हैं। SKU के नाम बदले जाते हैं। देश के कोड विभाजित हो जाते हैं। PK के रूप में सरोगेट का उपयोग करें और प्राकृतिक कुंजी पर UNIQUE प्रतिबंध लगाएँ।

कॉलम प्रकार: स्ट्रिंग

अधिकांश टेक्स्ट कॉलम के लिए:

  • VARCHAR(n) — जब आपकी अधिकतम सीमा निश्चित हो (ईमेल, कोड)
  • TEXT — मुक्त रूप वाले, लंबे कंटेंट के लिए
  • CITEXT — जब तुलना हमेशा बड़े-छोटे अक्षरों से स्वतंत्र होनी चाहिए (ईमेल!)

कॉलम प्रकार: संख्याएँ

संख्यात्मक कॉलम के लिए:

  • ID और काउंटर के लिए BIGINT
  • धनराशि के लिए NUMERIC(p, s)
  • केवल विज्ञान के लिए REAL/DOUBLE PRECISION

कॉलम प्रकार: समय

समय संबंधी कॉलम के लिए:

  • घटनाओं के लिए TIMESTAMPTZ (डिफ़ॉल्ट)
  • कैलेंडर के दिनों के लिए DATE (जन्मदिन, छुट्टियाँ)
  • तारीख के बिना दिन के समय के लिए TIME (दुकान खुलने के घंटे)

बूलियन बनाम स्थिति

यदि किसी कॉलम की भविष्य में दो से अधिक अवस्थाएँ हो सकती हैं, तो बूलियन के बजाय स्थिति वाले टेक्स्ट और CHECK को प्राथमिकता दें:

-- Will probably grow:
status TEXT NOT NULL CHECK (status IN ('draft','published','archived'))

-- vs the trap of "is_published BOOLEAN" when you later need a third state.

प्रतिबंधों का साथ

हर कॉलम में ये होने चाहिए:

  • उपयुक्त सबसे सीमित प्रकार
  • NULL का कोई अर्थ होने तक NOT NULL
  • यदि कॉलम में अधिकांशतः एक ही मान रहता है, तो DEFAULT
  • यदि कोई डोमेन नियम है, तो CHECK
  • यदि इसका उपयोग WHERE/JOIN/ORDER में होता है, तो एक अनुक्रमणिका

संग्रहण संबंधी प्रभाव

छोटे प्रकार = छोटी पंक्तियाँ = हर पृष्ठ पर अधिक पंक्तियाँ = बेहतर कैश हिट दर। TEXT को VARCHAR(20) में बदलने से स्थान नहीं बचता (संग्रहण समान होता है)। BIGINT को INT में बदलने से कॉलम की चौड़ाई आधी हो जाती है।

Foreign Key के प्रकार समान होने चाहिए

FK कॉलम के प्रकार संदर्भित PK के प्रकार से बिल्कुल मेल खाने चाहिए:

-- Wrong (silently won't use the index efficiently):
user_id INT REFERENCES users(id)   -- where users.id is BIGINT

-- Right:
user_id BIGINT REFERENCES users(id)

पुनरावलोकन

प्रकार का चुनाव ही डिज़ाइन है।

  • PK के लिए BIGSERIAL या UUID
  • धनराशि के लिए NUMERIC
  • घटनाओं के लिए TIMESTAMPTZ
  • बदलती स्थिति के लिए TEXT-with-CHECK
  • डिफ़ॉल्ट रूप से NOT NULL

त्वरित जाँच

आप कई समय क्षेत्रों के उपयोगकर्ताओं के लिए घटनाओं के टाइमस्टैम्प संग्रहीत कर रहे हैं। कौन-सा प्रकार चुनेंगे?

शुरुआत निःशुल्क

एआई शिक्षक के साथ SQL सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
46
पाठ
183

अक्सर पूछे जाने वाले प्रश्न

क्या “Keys और Types चुनना” पाठ निःशुल्क है?

हाँ—“Keys और Types चुनना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Keys और Types चुनना” में मैं क्या सीखूँगा?

BIGSERIAL बनाम UUID primary keys चुनिए, TEXT और VARCHAR(n) में निर्णय लीजिए और हर column के लिए सही type चुनिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Keys और Types चुनना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. एक Blog का Modelling: Users, Posts, Comments
  2. Keys और Types चुनना
  3. सामान्य Queries के लिए Indexes
  4. Test Data से Database को Seeding करना
← SQL Academy पर वापस जाएँ