J'installe une base de données en utilisant phpMyAdmin. J'ai deux tables ( foo
et bar
), indexées sur leurs clés primaires . J'essaie de créer une table relationnelle ( foo_bar
) entre eux, en utilisant leurs clés primaires comme clés étrangères.
J'ai créé ces tables en tant que MyISAM, mais j'ai depuis changé les trois en InnoDB, car j'ai lu que MyISAM ne prend pas en charge les clés étrangères. Tous les id
champs le sont INT(11)
.
Lorsque je choisis la foo_bar
table, cliquez sur le lien "Affichage des relations", et essayez de définir les colonnes FK pour être, database.foo.id
et database.bar.id
il dit "Aucun index défini!" à côté de chaque colonne.
Qu'est-ce que je rate?
Clarification / mise à jour
Par souci de simplicité, je souhaite continuer à utiliser phpMyAdmin. J'utilise actuellement XAMPP, ce qui est assez facile pour me permettre de me concentrer sur PHP / CSS / Javascript, et il est livré avec phpMyAdmin.
De plus, même si je n'ai pas encore pu configurer de clés étrangères explicites, j'ai une table relationnelle et je peux effectuer des jointures comme ceci:
SELECT *
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;
Cela me met mal à l'aise de ne pas définir explicitement les FK dans la base de données.