Я настраиваю базу данных с помощью phpMyAdmin. У меня есть две таблицы ( foo
и bar
), проиндексированные по их первичным ключам . Я пытаюсь создать реляционную таблицу ( foo_bar
) между ними, используя их первичные ключи в качестве внешних ключей.
Я создал эти таблицы как MyISAM, но с тех пор изменил все три на InnoDB, потому что я прочитал, что MyISAM не поддерживает внешние ключи. Всеid
поля есть INT(11)
.
Когда я выбираю foo_bar
таблицу, нажмите «Просмотр» отношения ссылку, и попытаться установить столбцы FK быть database.foo.id
и database.bar.id
он говорит «Индекс не определен!» рядом с каждым столбцом.
Чего мне не хватает?
Осветление / Update
Ради простоты я хочу продолжать использовать phpMyAdmin. В настоящее время я использую XAMPP, который достаточно прост, чтобы позволить мне сосредоточиться на PHP / CSS / Javascript, и он поставляется с phpMyAdmin.
Кроме того, хотя я еще не смог установить явные внешние ключи, у меня есть реляционная таблица и я могу выполнять соединения следующим образом:
SELECT *
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;
Просто мне неудобно не иметь FK, явно определенные в базе данных.