-
डेटाबेस डिज़ाइन में विचार प्रत्येक डेटा तत्व को अलग रखना है। और प्रत्येक तत्व का अपना डेटाटाइप, बाधाएं और नियम होते हैं। वह
c0002
एक क्षेत्र नहीं, बल्कि दो है।XXXnnn
. के साथ भी ऐसा ही है या जो कुछ भी। यह गलत है, और यह डेटा का उपयोग करने और डेटाबेस सुविधाओं और सुविधाओं का उपयोग करने की आपकी क्षमता को गंभीर रूप से सीमित कर देगा।इसे दो अलग-अलग डेटा आइटम में विभाजित करें:
column_1 CHAR(1)
column_2 INTEGERफिर ऑटोइनक्रिमेंट को
column_2
. पर सेट करेंऔर हाँ, आपकी प्राथमिक कुंजी
(column_1, column_2)
. हो सकती है , इसलिए आपने जो कुछ भी अर्थ खोया नहीं हैc0002
आपके लिए है। -
आपूर्तिकर्ताओं और ग्राहकों (जो भी "सी" और "एस" का अर्थ है) को एक ही टेबल में न रखें। यदि आप ऐसा करते हैं, तो आपके पास डेटाबेस तालिका नहीं होगी, आपके पास एक फ्लैट फ़ाइल होगी। और इसके परिणामस्वरूप विभिन्न समस्याएं और सीमाएं।
इसका मतलब है, डेटा को सामान्य करें। आप के साथ समाप्त होगा:
Person
के लिए एक टेबल याOrganisation
सामान्य डेटा युक्त (Name, Address
...)Customer
के लिए एक टेबल ग्राहक-विशिष्ट डेटा युक्त (CreditLimit
...)Supplier
के लिए एक टेबल आपूर्तिकर्ता-विशिष्ट डेटा युक्त (PaymentTerms
...)- कोई अस्पष्ट या वैकल्पिक कॉलम नहीं, इसलिए कोई नल नहीं
- उपयोग या SQL फ़ंक्शन पर कोई सीमा नहीं
।
और जब आपको कॉलम जोड़ने की आवश्यकता होती है, तो आप इसे केवल वहीं करते हैं जहां इसकी आवश्यकता होती है, फ्लैट फ़ाइल के अन्य सभी मुकदमों को प्रभावित किए बिना। प्रभाव का दायरा परिवर्तन के दायरे तक सीमित है।