मैं एक किताब पॉल DuBois द्वारा और किताब वे कहते हैं में "MySQL डेवलपर के पुस्तकालय" कहा जाता है पढ़ रहा हूँ:क्या कोई मुझे बता सकता है कि प्राथमिक कुंजी वास्तव में क्या करती है?
CREATE TABLE score
(
student_id INT UNSIGNED NOT NULL,
event_id INT UNSIGNED NOT NULL,
score INT NOT NULL,
PRIMARY KEY (event_id, student_id),
INDEX (student_id),
FOREIGN KEY (event_id) REFERENCES grade_event (event_id),
FOREIGN KEY (student_id) REFERENCES student (student_id)
) ENGINE = InnoDB;
हम प्राथमिक कुंजी दो स्तंभों के संयोजन बनाया है। यह सुनिश्चित करता है कि हमारे पास किसी दिए गए प्रश्नोत्तरी या परीक्षण के लिए छात्र के लिए डुप्लिकेट स्कोर नहीं होंगे। ध्यान दें कि यह event_id और student_id का संयोजन है जो अद्वितीय है। स्कोर तालिका में, न तो मूल्य अद्वितीय है। एक से अधिक स्कोर पंक्तियों प्रत्येक EVENT_ID मूल्य (छात्र प्रति एक) के लिए, और प्रत्येक student_id मूल्य (प्रत्येक प्रश्नोत्तरी और परीक्षण के लिए एक) छात्र
द्वारा उठाए गए क्या करने के लिए स्पष्ट नहीं है के लिए कई पंक्तियां हो जाएगा मैं एक प्राथमिक कुंजी के रूप में दो कॉलम संयोजन कर रहा हूं ... मतलब, मुझे लगता है कि वास्तव में हुड के नीचे क्या चल रहा है ... यह संख्याओं का संग्रह ले रहा है [95, 210] उदाहरण के लिए और इसका उपयोग करना एक "कुंजी" ... क्या हैश की कुंजी के रूप में प्राथमिक कुंजी के बारे में सोचना उचित है?
पहले मैंने हमेशा प्राथमिक कुंजी के बारे में सोचा था क्योंकि तालिका के लिए अद्वितीय आईडी से ज्यादा कुछ नहीं .. लेकिन अब इस संदर्भ में, मैं खुद को ढूंढ रहा हूं कि वास्तव में प्राथमिक कुंजी क्या कर रही है। क्या कोई मुझे एसक्यूएल कुंजी पर कम कर सकता है?