Composite-Taste oder neuer einzigartiger Schlüssel
-
18-09-2019 - |
Frage
Ich möchte wissen, welche ist die beste sein wird. Ich habe eine Tabelle, sagt A mit col1 (ein Fremdschlüssel fk1 ist), col2 (ist auch ein ausländischer keyfk2). Kann ich PK als (col1, col2) oder ein neu erzeugten PK. Die Abfragen müssen fk1 in Kriterien und FK2 in beitritt. Wir empfehlen, dass mich das Beste.
P. S Ich verwende mysql
Lösung
Wenn dies eine many-to-many-Link-Tabelle, nur (col1, col2)
als PK
verwenden.
Fremdschlüssel in MySQL
InnoDB
implizieren, die indexorganisierten ist, bedeutet dies, dass die Tabelle selbst die PRIMARY KEY
sein wird, und es ist wird Aufzeichnungen bestellt werden.
Wenn Sie auch für col2
suchen gehen und verwenden col1
in beitritt, müssen Sie einen zusätzlichen Sekundärindex auf (col2)
erstellen. Dieser Index wird die PRIMARY KEY
Werte wie die Datensatzzeiger implizit enthalten, und daher wird in der Tat auf (col2, col1, col2)
und Index.
Andere Tipps
Wie andere gesagt haben - wenn dies eine Verknüpfungstabelle Verwendung col1, col2 als PK. Wenn auf der anderen Seite diese Tabelle auch verknüpft werden kann, erstellen Sie einen neuen Schlüssel für sie. Sie können auch eine eindeutige Einschränkung auf dem col1, col2 Paar setzen.