मैं सामान्यीकरण के बारे में एक अन्य डेटाबेस डिजाइनर के साथ एक दिलचस्प चर्चा कर रहा हूं। इस उदाहरण में, हमारे पास गेमट्रेस टेबल है और प्रत्येक रिकॉर्ड में वह वर्ष होना चाहिए जिसमें गेम जारी किया गया था। वह कहते हैं कि 2NF यह कहता है कि सब कुछ सामान्य किया जाना चाहिए, इसलिए, आज्ञाकारी होने के लिए, वर्ष फ़ील्ड को अपनी प्राथमिक कुंजी के साथ रिलीज़यियर्स तालिका में विभाजित किया जाना चाहिए जिसे गेमटाइल्स तालिका द्वारा संदर्भित किया गया है। मैं कहता हूं कि इसे गेमट्रेस टेबल पर ही एक क्षेत्र के रूप में रहना चाहिए।
इसके लिए मेरा तर्क यह है कि एक वर्ष केवल एक गैर-आदिम संख्यात्मक मान है जो अपनी बहुत ही प्रकृति से स्थिर है (यानी, 2011 हमेशा 2011 तक रहेगा)। इसके कारण, यह अपने स्वयं के पहचानकर्ता के रूप में कार्य करता है और इसे संदर्भित करने के लिए कुछ भी नहीं चाहिए क्योंकि यह क्या है। यह अतिरिक्त रखरखाव का भी परिचय देता है क्योंकि अब आपको इसे संदर्भित करने के लिए तालिका में एक नया वर्ष जोड़ना होगा। यदि आप एक बड़ी श्रृंखला के साथ तालिका को पहले से तैयार करते हैं तो आपके पास अतिरिक्त रिकॉर्ड हैं जो संभावित रूप से उनके संदर्भ में नहीं होंगे। इससे डेटाबेस का आकार भी बढ़ता है क्योंकि अब आपके पास एक अतिरिक्त तालिका, रिकॉर्ड ओवरहेड और वर्ष के लिए अतिरिक्त प्राथमिक कुंजी है। यदि आप गेमटाइल्स टेबल पर वर्ष को एक क्षेत्र के रूप में रखते हैं, तो आप इस अतिरिक्त रखरखाव और ओवरहेड को समाप्त कर देते हैं।
इस पर विचार?
संपादित करें: इस StackOverflow पर पोस्ट करने के लिए। क्या कोई इसे हटाने के लिए वोट कर सकता है या इसे ध्यान में रख सकता है?