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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top