मुझे विश्वास है कि यदि आप अधिक जानकारी तो शामिल करने के लिए इस प्रणाली का विस्तार करने जा रहे हैं, तो आप अपने डेटाबेस दोबारा काम से फायदा हो सकता है, मैं इसे इतना तरह का निर्माण होगा:
तालिका नाम = बोल्ड
स्तंभ का नाम = इटैलिक
छात्रों:
- सिड (प्राथमिक कुंजी)
- छात्र के बारे में अन्य जानकारी
टेस्ट:
- टीआईडी (प्राथमिक कुंजी)
- परीक्षण
बारे में अन्य जानकारी
टेस्ट ग्रेड
- GID (प्राथमिक कुंजी)
- टीआईडी (विदेशी कुंजी)
- सिड (विदेशी कुंजी)
- ग्रेड
यह संरचना डेटाबेस सामान्यीकृत नामक एक विचार पर आधारित है (यदि आप इसे Google करते हैं तो आपको बहुत सारी जानकारी मिल जाएगी)।मैं आप नीचे दिए गए एक आंशिक सारांश दे देंगे, लेकिन आप इसे पर पढ़ना चाहिए आप एसक्यूएल के बहुत सारे करने के लिए जा रहे हैं अपने आप को:
पता करने के लिए पहली बात यह है कि एक प्राथमिक कुंजी सिर्फ एक अद्वितीय पहचानकर्ता, यह है आम तौर पर जानकारी का हिस्सा नहीं है (हालांकि, चूंकि यह अद्वितीय है क्योंकि प्रत्येक डेटाम के पास इसकी प्राथमिक कुंजी के लिए अलग-अलग मूल्य होना चाहिए), और एक विदेशी कुंजी संदर्भ तालिका के प्राथमिक का उपयोग करके किसी तालिका में एक पंक्ति से एक पंक्ति में पंक्ति को संदर्भित करने का एक तरीका है कुंजी: उदाहरण के लिए यहां प्रत्येक ग्रेड संदर्भ में विदेशी कुंजी एसआईडी एक प्राथमिक छात्र है, जो उनके प्राथमिक कुंजी एसआईडी पर आधारित है।
उदा छात्र के पास एसआईडी 1 है और उसके सभी परीक्षणों में एसआईडी कॉलम में 1 है। छात्र 2, 3, 4, और इसी तरह के लिए भी।
सामान्यीकरण का मूल विचार यह है कि सभी अद्वितीय डेटा केवल एक बार संग्रहीत किए जाते हैं और फिर इसका उपयोग करने वाले अन्य स्थानों में संदर्भित किया जाता है (यदि आप देखें कि उदाहरण में चाबियाँ कैसे संरचित की जाती हैं, तो सभी छात्र जानकारी संग्रहीत होती है एक तालिका में और फिर प्रत्येक ग्रेड में डुप्लीकेट होने के बजाय, उनके परीक्षण ग्रेड में संदर्भित)।
इन तालिकाओं मैं इस प्रयोग करेंगे से तुम क्या चाहते प्राप्त करने के लिए (अपने PHP में लिखा):
$sql = 'SELECT * FROM Tests ORDER BY TID';
$tempresult = mysql_query($sql);
while($temprow = mysql_fetch_array($tempresult)){
echo $temprow['TID'];
}
$sql = 'SELECT * FROM Students';
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo '\n'.$row['SID'];
$sql = 'SELECT * FROM Grades WHERE SID='.$row['SID'].' ORDER BY TID';
$result2 = mysql_query($sql);
while($row2 = mysql_fetch_array($result2)){
echo ' '.$rows['Grade'];
}
}
आप गूंज बयान में इस पर फ़ॉर्मेटिंग जोड़ने के लिए और भी अतिरिक्त जानकारी आप चुनते के किसी भी मुद्रित कर सकते हैं जोड़ने के लिए। यदि आप कोई प्रश्न पूछते हैं तो कृपया उनसे पूछें।
संपादित करें: मैं दूसरों को पढ़ लिया है, और मानते हैं कि उनकी विधि बेहतर सभी संभावना में है, केवल एक चीज के बारे में मैं यकीन नहीं है पिवट तालिका परीक्षण की एक अलग संख्या को संभालने के लिए विस्तार कर सकते हैं कि क्या, अगर यह होता है कर सकते हैं (या आपको इसकी आवश्यकता नहीं होगी), तो मैं उनकी विधि का सुझाव देता हूं, अन्यथा मुझे लगता है कि यह आपके आवेदन में एक जगह हो सकती है।
"कोड" बटन के साथ स्वरूपण आपको एक निश्चित चौड़ाई फ़ॉन्ट का उपयोग करने देगा, इन तालिकाओं को लाइन करने में मदद करेगा और अधिक पठनीय – ford