मुझे यह पता लगाने में कठिनाई हो रही है कि डेटाबेस में लुकअप टेबल्स का उपयोग कब और कहाँ के लिए करना है। अधिकांश स्रोतों को मैंने देखा है कि मैं कभी भी बहुत अधिक नहीं हो सकता, लेकिन कुछ बिंदु पर, ऐसा लगता है कि डेटाबेस को कई टुकड़ों में तोड़ दिया जाएगा, जबकि यह कुशल हो सकता है, यह अब प्रबंधनीय नहीं है। यहां एक उदाहरण दिया गया है कि मैं किसके साथ काम कर रहा हूं:
मान लीजिए कि मेरे पास एक कर्मचारी है जिसे कर्मचारी कहा जाता है:
ID LName FName Gender Position
1 Doe John Male Manager
2 Doe Jane Female Sales
3 Smith John Male Sales
एक पल के लिए संकेत दें कि डेटा अधिक जटिल है और जिसमें सैकड़ों पंक्तियां हैं। सबसे स्पष्ट बात जो मैं देख रहा हूं, उसे लुकअप टेबल पर ले जाया जा सकता है। मैं स्थिति नामक एक तालिका बना सकता हूं और स्थिति तालिका में कर्मचारी तालिका में स्थिति तालिका से विदेशी कुंजी चिपका सकता हूं।
ID Position
1 Manager
2 Sales
लेकिन इससे पहले कि यह असहनीय हो जाए, मैं सूचनाओं को छोटी लुकअप टेबलों में कैसे तोड़ सकता हूं? मैं एक जेंडर टेबल बना सकता था और पुरुष के लिए 1 और एक अलग लुकअप टेबल में महिला के लिए 2 संवाददाता हो सकता था। मैं भी टेबल में LNames और FNames डाल सकता है। सभी "जॉन" प्रविष्टियों को 1 की एक विदेशी कुंजी के साथ बदल दिया जाता है जो FName तालिका की ओर इशारा करती है जो कहती है कि 1 की ID जॉन से मेल खाती है। यदि आप इस खरगोश के छेद को इस तरह से बहुत नीचे जाते हैं, हालांकि, आपकी कर्मचारी तालिका फिर विदेशी कुंजियों की गड़बड़ी से कम हो जाती है:
ID LName FName Gender Position
1 1 1 1 1
2 1 2 2 2
3 2 1 1 2
हालांकि यह किसी सर्वर को प्रोसेस करने के लिए अधिक कुशल नहीं हो सकता है, लेकिन यह निश्चित रूप से एक सामान्य व्यक्ति के लिए अपठनीय है जो इसे बनाए रखने की कोशिश कर रहा हो और इसे एक्सेस करने की कोशिश करने वाले एप्लिकेशन डेवलपर के लिए इसे और अधिक कठिन बना देता है। तो, मेरा असली सवाल यह है कि कितनी दूर है? क्या इस तरह की चीज़ों के लिए "सर्वोत्तम अभ्यास" या कहीं दिशा-निर्देश का एक अच्छा सेट है? मुझे कोई भी जानकारी ऑनलाइन नहीं मिल रही है जो वास्तव में इस विशेष मुद्दे के लिए दिशानिर्देशों के एक अच्छे, प्रयोग करने योग्य सेट के नीचे है। डेटाबेस डिज़ाइन मेरे लिए पुरानी टोपी है लेकिन GOOD डेटाबेस डिज़ाइन बहुत नया है इसलिए मेरे सिर पर तकनीकी उत्तर हो सकते हैं। किसी भी सहायता की सराहना की जाएगी!