Я создаю базу данных с помощью 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 в базе данных.