डेटाबेस मॉडल में सामान्यीकरण का अनुवाद करने के लिए मूल रूप से तीन विकल्प हैं
<एच3>1. एक टेबल प्रति कंक्रीट क्लास
टेबल बनाएं Admin , Teacher और Student . इनमें से प्रत्येक तालिका में User . की सभी विशेषताओं और संबंधों के लिए कॉलम हैं
- प्रो
- एक ठोस उपवर्ग के सभी क्षेत्र एक ही तालिका में हैं, इसलिए सभी छात्र डेटा प्राप्त करने के लिए किसी भी शामिल होने की आवश्यकता नहीं है
- आसान डेटा सत्यापन बाधाएं (जैसे
Studentके लिए अनिवार्य फ़ील्ड) )
- कोन
User. के सभी क्षेत्र प्रत्येक उपवर्ग तालिका में डुप्लीकेट हैं- विदेशी कुंजी
User. के लिए तीन एफके क्षेत्रों में विभाजित किया जाना है। एकAdmin. के लिए , एकTeacher. के लिए और एकStudent. के लिए ।
इस मामले में आपके पास केवल एक टेबल कॉल है User जिसमें User . के सभी फ़ील्ड शामिल हैं + User . के सभी उप-वर्गों के सभी फ़ील्ड
- प्रो
- सभी फ़ील्ड एक ही तालिका में हैं, इसलिए सभी
Userget प्राप्त करने के लिए किसी जॉइन की आवश्यकता नहीं है डेटा - FK का
Userमें कोई विभाजन नहीं है
- सभी फ़ील्ड एक ही तालिका में हैं, इसलिए सभी
- कोन
- ऐसे कई फ़ील्ड हैं जिनका कभी उपयोग नहीं किया जाता है।
Student. के लिए विशिष्ट सभी फ़ील्ड औरTeacherAdmins. के लिए कभी नहीं भरे जाते हैं और इसके विपरीत - डेटा सत्यापन जैसे कि एक ठोस वर्ग के लिए अनिवार्य फ़ील्ड जैसे
Studentबल्कि जटिल हो जाते हैं क्योंकि यह अब आसान नहीं रह गया हैNot Nullबाधा।
- ऐसे कई फ़ील्ड हैं जिनका कभी उपयोग नहीं किया जाता है।
इस मामले में आप प्रत्येक ठोस उप-वर्ग के लिए तालिकाएँ बनाते हैं और आप वर्ग User के लिए एक तालिका बनाते हैं . प्रत्येक ठोस उप-वर्ग तालिका में User . के लिए एक अनिवार्य FK है
- प्रो
- सबसे सामान्यीकृत स्कीमा:उपयोगकर्ता की विशेषताओं के लिए कोई दोहराई गई फ़ील्ड नहीं, और कोई अप्रयुक्त फ़ील्ड नहीं।
- FK का
Userमें कोई विभाजन नहीं है - आसान डेटा सत्यापन बाधाएं (जैसे
Studentके लिए अनिवार्य फ़ील्ड) )
- कोन
- यदि आप किसी
Studentका सारा डेटा चाहते हैं, तो आपको दो तालिकाओं को क्वेरी करनी होगी - जटिल सत्यापन नियम यह सुनिश्चित करने के लिए कि प्रत्येक
Userरिकॉर्ड में ठीक एकAdminहै ,TeacherयाStudentरिकॉर्ड।
- यदि आप किसी
आप इनमें से कौन सा विकल्प चुनते हैं, यह कई चीजों पर निर्भर करता है जैसे कि उप-वर्गों की संख्या, उपवर्ग या सुपरक्लास में विशेषताओं की संख्या, सुपरक्लास के लिए एफके की संख्या, और शायद कुछ अन्य चीजें जो मैंने नहीं कीं के बारे में सोचो।