Solo per chiarimenti: una tabella può avere al massimo una chiave primaria. Una chiave primaria consiste di una o più colonne (da quella tabella). Se una chiave primaria è composta da due o più colonne, viene chiamata una chiave primaria composita . Esso è definito come segue:
CREATE TABLE voting (
QuestionID NUMERIC,
MemberID NUMERIC,
PRIMARY KEY (QuestionID, MemberID)
);
La coppia (QuestionID, MemberID) deve quindi essere univoco per la tabella e né valore può essere NULL. Se si esegue una query come questa:
SELECT * FROM voting WHERE QuestionID = 7
utilizzerà l'indice della chiave primaria. Se tuttavia si esegue questa operazione:
SELECT * FROM voting WHERE MemberID = 7
non sarà a causa di utilizzare un indice composito richiede l'utilizzo di tutti i tasti di "sinistra". Se un indice è nei campi (A, B, C) e il tuo criterio è su B e C, allora quell'indice non ti è utile per quella query. Quindi scegliere tra (QuestionID, MemberID) e (MemberID, QuestionID) qualunque sia il modo più appropriato per utilizzare la tabella.
Se necessario, aggiungere un indice d'altro:
CREATE UNIQUE INDEX idx1 ON voting (MemberID, QuestionID);
"E il QuestionID e MemberID saranno le chiavi primarie." (QuestionID, MemberID) sarà il (primario) * tasto * composito *. C'è solo una chiave e consiste di due colonne. – Draemon