Estou configurando um banco de dados usando o phpMyAdmin. Eu tenho duas tabelas ( foo
e bar
), indexadas em suas chaves primárias . Estou tentando criar uma tabela relacional ( foo_bar
) entre eles, usando suas chaves primárias como chaves estrangeiras.
Criei essas tabelas como MyISAM, mas desde então as três foram alteradas para InnoDB, porque li que o MyISAM não suporta chaves estrangeiras. Todos os id
campos são INT(11)
.
Quando eu escolher a foo_bar
tabela, clique no link "Ver relação", e tentar definir as colunas FK ser database.foo.id
e database.bar.id
, ele diz que "Nenhum índice definida!" ao lado de cada coluna.
o que estou perdendo?
Esclarecimento / Atualização
Por uma questão de simplicidade, quero continuar usando o phpMyAdmin. Atualmente, estou usando o XAMPP, que é fácil o suficiente para me concentrar no PHP / CSS / Javascript, e ele vem com o phpMyAdmin.
Além disso, embora eu não tenha sido capaz de configurar chaves estrangeiras explícitas ainda, eu tenho uma tabela relacional e posso executar junções como esta:
SELECT *
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;
Apenas me sinto desconfortável por não ter os FKs definidos explicitamente no banco de dados.