आपने ऊपर टिप्पणी में लिखा है:
"फंडामेंटल ऑफ डेटाबेस सिस्टम" पुस्तक [...] कहती है [...] कि एक चौराहे की मेज का उपयोग करने की सिफारिश की जाती है यदि विदेशी कुंजी कॉलम में बहुत सारे मान हैं (उदाहरण के लिए: यदि 98% कर्मचारी हैं एक विभाग का प्रबंधन न करें)
जब विदेशी कुंजी कॉलम में बहुत सारे NULL मान होते हैं, तो आपके कार्यक्रमों को प्रत्येक रिकॉर्ड प्रक्रिया के लिए इस खाली कॉलम से निपटना होगा। कॉलम संभवतः कुछ डिस्क स्थान पर कब्जा कर लेगा, भले ही 98% मामलों में इसके खाली होने पर, रिश्ते को क्वेरी करने का मतलब है उस कॉलम को क्वेरी करना जो आपको अधिक नेटवर्क ट्रैफ़िक देता है, और यदि आप एक ORM का उपयोग कर रहे हैं जो आपको अपने टेबल से कक्षाएं उत्पन्न करता है, तो आपके प्रोग्राम आवश्यकता से अधिक क्लाइंट की ओर से अधिक स्थान की आवश्यकता होगी। एक चौराहे की मेज का उपयोग करने से बचा जाता है, केवल लिंक रिकॉर्ड आवश्यक होंगे जहां समकक्ष विदेशी कुंजी अन्यथा पूरी नहीं होगी।
इसके विपरीत, यदि आपके पास केवल कुछ NULL मान नहीं हैं, तो 50% या उससे अधिक संबंध NULL नहीं होने देते हैं, एक प्रतिच्छेदन तालिका का उपयोग करने से आपको विपरीत प्रभाव मिलता है - अधिक डिस्क स्थान, अधिक नेटवर्क ट्रैफ़िक आदि के परिणामस्वरूप उच्च जटिलता।
इसलिए एक चौराहे की मेज का उपयोग केवल अनुकूलन का एक रूप है, केवल एक विशिष्ट मामले के लिए समझदार है, और आजकल विशेष रूप से, जहां डिस्क स्थान और मेमोरी सस्ता हो गई है, बहुत कम बार आवश्यकता होती है। ध्यान दें कि "फंडामेंटल ऑफ डेटाबेस सिस्टम" मूल रूप से 20 साल पहले लिखा गया था (मुझे 1994 से दूसरे संस्करण का संदर्भ मिला), और मुझे लगता है कि उस समय पहले से ही सिफारिश की गई थी। 1994 से पहले, अंतरिक्ष अनुकूलन आज की तुलना में बहुत अधिक महत्वपूर्ण था, क्योंकि सामूहिक भंडारण अभी भी अधिक महंगा था और कंप्यूटर और नेटवर्क आज की तुलना में बहुत धीमा थे।
एक टिप्पणी करने के लिए एक साइड नोट के रूप में: उपरोक्त कथन सिर्फ यह अनुमान लगाने की कोशिश कर रहा है कि "फंडामेंटल ऑफ डेटाबेस सिस्टम" के लेखक ने उसकी सिफारिश को ध्यान में रखा था, मुझे लगता है कि वह ज्यादातर प्रणालियों के लिए मान्य एक सामान्य, सामान्य बयान दे रहा था। कुछ डेटाबेस में "स्पार्स कॉलम" जैसे अन्य संभावित अनुकूलन हैं जो एक चौराहे की मेज के उपयोग को और भी अधिक अप्रचलित बनाते हैं।
तो वह सिफारिश गलत नहीं है। पुस्तक आपको {0,1}:n
सामान्य रूप से रिश्तों के लिए प्रतिच्छेदन तालिका पसंद करने के लिए नहीं कहती है , या - जैसा कि आपने लिखा है - कि यह "सही तरीका" है। इस तरह के अनुकूलन का उपयोग करें जो आपके कार्यक्रमों को केवल तभी और अधिक जटिल बना देगा जब आपको वास्तव में उनकी आवश्यकता होगी।