ये रही आपकी टेबल.
Shirt
id product color size stock
---------------------------------------------
1 Nike Shirt black M 5
2 Nike Shirt white L 10
3 Nike Shirt blue M 2
4 Nike Shirt blue XL 3
....
आप देखते हैं कि आपने उत्पाद का नाम "नाइके शर्ट" और रंग "नीला" कैसे दोहराया है। एक सामान्यीकृत संबंधपरक डेटाबेस में, हम किसी भी जानकारी की नकल नहीं करना चाहते हैं। आपको क्या लगता है कि अगर कोई गलती से पंक्ति 4 में "नाइके शर्ट" को "नाइके स्कर्ट" में बदल देता है तो क्या होगा?
तो, आइए सामान्य करें आपकी टेबल.
हम एक उत्पाद तालिका के साथ शुरुआत करेंगे।
Product
id product
------ ------------
0 Nike Shirt
आम तौर पर, डेटाबेस आईडी नंबर शून्य से शुरू होते हैं, एक से नहीं।
इसके बाद, एक रंग तालिका बनाते हैं।
Color
id color
------ -------
0 black
1 white
2 blue
इसके बाद, एक आकार तालिका बनाते हैं।
Size
id size
------ -----
0 XS
1 S
2 M
3 L
4 XL
5 XXL
ठीक है, अब हमारे पास 3 अलग-अलग ऑब्जेक्ट टेबल हैं। हम उन्हें एक साथ कैसे रखते हैं ताकि हम देख सकें कि स्टॉक में क्या है?
आपने अपनी मूल तालिका के साथ सही विचार किया था।
Stock
id product color size stock
---------------------------------------------
0 0 0 2 5
1 0 1 3 10
2 0 2 2 2
3 0 2 4 3
उत्पाद, रंग और आकार संख्याएं उत्पाद, रंग और आकार तालिका में वापस विदेशी कुंजी हैं। हम ऐसा करने का कारण जानकारी के दोहराव को खत्म करना है। आप देख सकते हैं कि कोई भी जानकारी केवल एक ही स्थान और एक ही स्थान पर संग्रहीत है।
स्टॉक टेबल पर आईडी जरूरी नहीं है। उत्पाद, रंग और आकार अद्वितीय होना चाहिए, ताकि वे 3 फ़ील्ड स्टॉक तालिका के लिए एक मिश्रित कुंजी बना सकें।
एक वास्तविक खुदरा स्टोर में, एक उत्पाद में कई अलग-अलग विशेषताएं हो सकती हैं। विशेषताएँ संभवतः एक कुंजी/मान तालिका में संग्रहीत की जाएंगी। . आपकी साधारण तालिका के लिए, हम तालिका को सामान्यीकृत संबंधपरक तालिकाओं में विभाजित कर सकते हैं।