Estoy configurando una base de datos usando phpMyAdmin. Tengo dos tablas ( foo
y bar
), indexadas en sus claves principales . Estoy tratando de crear una tabla relacional ( foo_bar
) entre ellos, usando sus claves principales como claves foráneas.
Creé estas tablas como MyISAM, pero desde entonces he cambiado las tres a InnoDB, porque leí que MyISAM no admite claves foráneas. Todos los id
campos son INT(11)
.
Cuando elijo la foo_bar
tabla, hago clic en el enlace "vista de relación" e intento configurar las columnas FK para que aparezcan database.foo.id
y database.bar.id
dice "¡No hay índice definido!" al lado de cada columna.
¿Qué me estoy perdiendo?
Aclaración / Actualización
En aras de la simplicidad, quiero seguir usando phpMyAdmin. Actualmente estoy usando XAMPP, que es lo suficientemente fácil como para permitirme enfocarme en PHP / CSS / Javascript, y viene con phpMyAdmin.
Además, aunque todavía no he podido configurar claves foráneas explícitas, sí tengo una tabla relacional y puedo realizar uniones 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;
Simplemente me incomoda no tener los FK definidos explícitamente en la base de datos.