लुकअप टेबल (या कोड टेबल , जैसा कि कुछ लोग उन्हें कहते हैं) आमतौर पर उन संभावित मूल्यों का एक संग्रह है जो एक निश्चित कॉलम के लिए दिए जा सकते हैं।
उदाहरण के लिए, मान लें कि हमारे पास एक लुकअप टेबल है party
(जिसका अर्थ राजनीतिक दलों के बारे में जानकारी संग्रहीत करना है) जिसमें दो कॉलम हैं:
party_code_idn
, जो सिस्टम-जनित संख्यात्मक मान रखता है, और ( व्यावसायिक डोमेन अर्थ की कमी ) वास्तविक कुंजी के लिए एक किराए के रूप में काम करता है।party_code
, तालिका की वास्तविक या "प्राकृतिक" कुंजी है क्योंकि यह उन मानों को बनाए रखता है जिनमें व्यावसायिक डोमेन अर्थ हैं।
और हम कहते हैं कि ऐसी तालिका उस डेटा को बनाए रखती है जो निम्न प्रकार है:
+----------------+------------+
| party_code_idn | party_code |
+----------------+------------+
| 1 | Republican |
| 2 | Democratic |
+----------------+------------+
party_code
स्तंभ, जो मूल्यों 'रिपब्लिकन' और 'डेमोक्रेटिक', टेबल की असली कुंजी जा रहा है, एक अद्वितीय बाधा के साथ की स्थापना की है, लेकिन मैं वैकल्पिक रूप से जोड़ा रहता है party_code_idn
, और यद्यपि तालिका (के पी के रूप में परिभाषित तार्किक बोल , party_code
प्राथमिक कुंजी [पीके]) के रूप में काम कर सकते हैं।
सवाल
लेन-देन तालिकाओं से मान देखने के लिए सर्वोत्तम अभ्यास क्या हैं ? क्या मुझे मूल्यों को सरोगेट करने के लिए फॉरवर्ड (FK) संदर्भ या तो (a) सीधे प्राकृतिक और सार्थक मूल्य या (b) में स्थापित करना चाहिए ?
विकल्प (ए) , उदाहरण के लिए,
+---------------+------------+---------+
| candidate_idn | party_code | city |
+---------------+------------+---------+
| 1 | Democratic | Alaska |
| 2 | Republican | Memphis |
+---------------+------------+---------+
निम्नलिखित गुण हैं 1 :
- अंतिम उपयोगकर्ता (+) के लिए पठनीय
- सिस्टम में आयात-निर्यात के लिए आसान (+)
- मूल्य को बदलने में मुश्किल है क्योंकि इसमें सभी संदर्भ तालिकाओं में संशोधन की आवश्यकता है (-)
- नया मूल्य जोड़ना महंगा नहीं है (=)
मुझे लगता है कि यह अनुप्रयोग प्रोग्रामिंग शब्दजाल में फ़ंक्शन कॉल से एक सादृश्य बनाने के लिए लगभग " मान से पास " जैसा है।
उदाहरण के लिए विकल्प (बी) ,
+---------------+----------------+---------+
| candidate_idn | party_code_idn | city |
+---------------+----------------+---------+
| 1 | 1 | Alaska |
| 2 | 2 | Memphis |
+---------------+----------------+---------+
नीचे गुण हैं:
- अंतिम उपयोगकर्ता के लिए पठनीय नहीं (-)
- आयात करने के लिए निर्यात करना मुश्किल है क्योंकि हमें इसे डी-रेफर करने की आवश्यकता है (-)
- मूल्यों को बदलने में आसान, क्योंकि हम केवल लेनदेन तालिकाओं में संदर्भ संग्रहीत कर रहे हैं (+)
- नया मूल्य जोड़ना महंगा नहीं है (=)
यह " संदर्भ द्वारा पास " के समान है , अगर ऐप प्रोग्रामिंग पार्लेंस में फ़ंक्शन कॉल की तुलना करता है ।
आयात-निर्यात भी एक अलग तरीके से किया जा सकता है, यानी, बस फिर से लुक-अप टेबल को पॉपुलेट करके और फिर सरोगेट कॉलम को फिर से बीजित करें। मुझे आशा है कि मुझे यह अधिकार मिल रहा है, यह एक ऐसी चीज है जिसे मैंने सिर्फ एक संभावना के रूप में सुना है।
1. ध्यान दें +
, -
और =
उन गुणों के लाभ का संकेत दें ।
सवाल
महत्वपूर्ण रूप से: अगर हम सिर्फ बाद वाले दृष्टिकोण का उपयोग करने जा रहे हैं तो क्या लुकअप (या कोड ) टेबल और एफके संदर्भ के बीच अंतर है ? मुझे लगता है कि वे सिर्फ एक ही काम करते हैं।