Konfiguruję bazę danych przy użyciu phpMyAdmin. Mam dwie tabele ( foo
i bar
), indeksowane na kluczach podstawowych . Próbuję utworzyć relacyjną tabelę ( foo_bar
) między nimi, używając ich kluczy podstawowych jako kluczy obcych.
Te tabele utworzyłem jako MyISAM, ale od tego czasu zmieniłem wszystkie trzy na InnoDB, ponieważ przeczytałem, że MyISAM nie obsługuje kluczy obcych. Wszystkie id
pola są INT(11)
.
Kiedy wybrać foo_bar
tabelę, kliknij „Widok relacyjny” link i spróbuj ustawić kolumny FK być database.foo.id
i database.bar.id
to mówi „No indeks zdefiniowany!” obok każdej kolumny.
czego mi brakuje?
Wyjaśnienie / aktualizacja
Dla uproszczenia chcę nadal używać phpMyAdmin. Obecnie używam XAMPP, co pozwala mi skupić się na PHP / CSS / JavaScript i zawiera phpMyAdmin.
Ponadto, chociaż nie byłem jeszcze w stanie skonfigurować jawnych kluczy obcych, mam tabelę relacyjną i mogę wykonywać połączenia w następujący sposób:
SELECT *
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;
To po prostu sprawia, że czuję się niekomfortowo, gdy nie mam wyraźnie zdefiniowanych FK w bazie danych.