Question

Je veux savoir qui sera le meilleur. J'ai une table dire ayant un col1 (est une fk1 clé étrangère), col2 (est aussi un keyfk2 étranger). Puis-je utiliser PK comme (col1, col2) ou PK nouvellement généré. Les requêtes auront fk1 des critères et fk2 dans les jointures. Veuillez me suggérer une meilleure.

P.S J'utilise mysql

Était-ce utile?

La solution

Si cela est un nombre à plusieurs table de lien, il suffit d'utiliser (col1, col2) comme PK.

Les clés étrangères dans MySQL impliquent InnoDB qui est organisée en index, cela signifie que la table elle-même sera le PRIMARY KEY et ses dossiers seront classés.

Si vous aussi allez rechercher et utiliser col2 col1 dans les jointures, vous devez créer un index secondaire supplémentaire sur (col2). Cet indice inclut implicitement les valeurs PRIMARY KEY comme les pointeurs d'enregistrement, et, par conséquent, sera en fait et l'indice sur (col2, col1, col2).

Autres conseils

Comme d'autres l'ont dit - si cela est une table de liaison, l'utilisation col1, col2 comme PK. Si d'autre part ce tableau peut également être lié à, puis créer une nouvelle clé de son propre. Vous pouvez également mettre une contrainte unique sur la col1, col2 paire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top