बस स्पष्टीकरण के लिए: एक तालिका में सबसे प्राथमिक कुंजी हो सकती है। प्राथमिक कुंजी में एक या अधिक कॉलम होते हैं (उस तालिका से)। यदि प्राथमिक कुंजी में दो या दो से अधिक कॉलम होते हैं तो इसे समग्र प्राथमिक कुंजी कहा जाता है। इस प्रकार यह परिभाषित किया गया है:
CREATE TABLE voting (
QuestionID NUMERIC,
MemberID NUMERIC,
PRIMARY KEY (QuestionID, MemberID)
);
जोड़ी (QuestionID, MemberID) तो तालिका के लिए अद्वितीय होना चाहिए और न Null मूल्य हो सकता है। आप इस तरह से एक प्रश्न करते हैं:
SELECT * FROM voting WHERE QuestionID = 7
यह प्राथमिक कुंजी के सूचकांक का प्रयोग करेंगे। लेकिन आप ऐसा करते हैं, तो:
SELECT * FROM voting WHERE MemberID = 7
यह क्योंकि एक समग्र सूचकांक का उपयोग नहीं होगा से "छोड़" सभी कुंजियों का उपयोग की आवश्यकता है। यदि कोई सूचकांक फ़ील्ड (ए, बी, सी) पर है और आपका मानदंड बी और सी पर है तो उस क्वेरी के लिए उस इंडेक्स का कोई उपयोग नहीं है। तो चुनें (QuestionID, सदस्य आईडी) और (सदस्य आईडी, प्रश्न आईडी) जो भी तालिका के उपयोग के लिए सबसे उपयुक्त है।
यदि आवश्यक हो, दूसरे पर एक सूचकांक जोड़ें:
CREATE UNIQUE INDEX idx1 ON voting (MemberID, QuestionID);
"और QuestionID और MemberID प्राथमिक कुंजी हो जाएगा।" (प्रश्न आईडी, सदस्य आईडी) (समग्र) प्राथमिक * कुंजी * होगा। केवल एक कुंजी है और इसमें दो कॉलम होते हैं। – Draemon