उस तरीके से कॉलम को संग्रहीत करने का सिद्धांत नुकसान भंडारण स्थान में है क्योंकि पंक्तियों की संख्या स्केल हो जाती है।
एक चरित्र कॉलम की बजाय, आप ENUM()
का उपयोग कर सकते हैं यदि आपके पास विकल्पों का एक निश्चित सेट है जो शायद ही कभी, बदलता है, और फिर भी धर्म विकल्पों की एक अतिरिक्त तालिका बनाने से बचें, जिसके लिए एक विदेशी कुंजी है । हालांकि, अगर विकल्प तरल पदार्थ होंगे, तो सामान्यीकरण नियम पसंद करेंगे कि विकल्प आपकी उपयोगकर्ता तालिका में एक विदेशी कुंजी के साथ अपनी तालिका में रखा जाए।
भंडारण स्थान के अलावा उन्हें अन्य तालिका में रखने के अलावा अन्य फायदे हैं। उन्हें संशोधित करना एक तस्वीर है। Christianity
को Christian
बदलने के लिए, आप संभावित महंगा कर के बजाय (यदि आप पंक्तियों के बहुत सारे है और धर्म अनुक्रमित नहीं है) धर्मों तालिका के एक ही परिवर्तन कर सकते हैं,
UPDATE users SET religion='Christianity' WHERE religion='Christian'
... आप कर सकते हैं बहुत आसान और सस्ता
UPDATE religions SET name='Christianity' WHERE id=123
बेशक, आप एक धर्म तालिका के खिलाफ कुंजी करके डेटा अखंडता को भी लागू करते हैं। गलत वर्तनी को गलत वर्तनी डालना असंभव हो जाता है जैसे गलत वर्तनी Christain
।
स्रोत
2011-12-30 03:55:15
मेरी इच्छा है कि मैं इसे इस तरह रखना चाहूंगा। – Taymon
इस मॉडल में डेटा संशोधन विसंगतियों को वास्तव में कुछ बाधा (जांच या विदेशी कुंजी) के बिना कैसे रोक दिया जाता है? (किसी ओआरएम या ऐसे) के माध्यम से किसी भी ग्राहक कोड प्रवर्तन को अनदेखा करना – gbn
यह एक महान बिंदु है जिसे आप लाते हैं। एक जांच लगाई जा सकती है लेकिन डेटा संशोधन का कोई स्रोत नहीं होगा। आप किसी भी परमाणु डेटा मूल्य के संबंध में एक ही सवाल पूछ सकते हैं। मुझे विश्वास नहीं है कि डेटा संशोधन विसंगतियों को रोकने के लिए हमेशा जरूरी है। असहमत होने के लिए स्वतंत्र महसूस करें। – user