Więc dla swoich pól, id
(PK), userId
(FK) i skillId
(FK), mysql automatycznie utworzy indeks na (id)
(unikalny) i indeks na (userId)
(nieunikalne) i indeks na (skillId)
(nie unikalny).
Nadal potrzebujesz dodatkowego unikalnego indeksu na (userId, skillId)
.
Może to zastąpić nieunikalny indeks w (userId)
ponieważ optymalizator może użyć (userId, skillId)
indeksuj zawsze, gdy trzeba szukać według userId
. Jednak tworzenie i usuwanie indeksów, gdy indeks jest używany przez klucz obcy w mysql może być kłopotliwe, więc możesz po prostu dodać złożony unikalny indeks.