Ich richte eine Datenbank mit phpMyAdmin ein. Ich habe zwei Tabellen ( foo
und bar
), die auf ihren Primärschlüsseln indiziert sind . Ich versuche, eine relationale Tabelle ( foo_bar
) zwischen ihnen zu erstellen , wobei ihre Primärschlüssel als Fremdschlüssel verwendet werden.
Ich habe diese Tabellen als MyISAM erstellt, aber seitdem alle drei in InnoDB geändert, da ich gelesen habe, dass MyISAM keine Fremdschlüssel unterstützt. Alle id
Felder sind INT(11)
.
Wenn ich die wählen foo_bar
Tabelle, klicken Sie auf die „Beziehung Ansicht“ -Link, und versuchen Sie die FK Spalten einstellen zu database.foo.id
und database.bar.id
es sagt „Nein Index definiert!“ neben jeder Spalte.
Was vermisse ich?
Klarstellung / Aktualisierung
Der Einfachheit halber möchte ich weiterhin phpMyAdmin verwenden. Ich verwende derzeit XAMPP, das einfach genug ist, um mich auf PHP / CSS / Javascript zu konzentrieren, und es wird mit phpMyAdmin geliefert.
Obwohl ich noch keine expliziten Fremdschlüssel einrichten konnte, habe ich eine relationale Tabelle und kann Verknüpfungen wie folgt ausführen:
SELECT *
FROM foo
INNER JOIN foo_bar
ON foo.id = foo_bar.foo_id
INNER JOIN bar
ON foo_bar.bar_id = bar.id;
Es ist mir nur unangenehm, die FKs nicht explizit in der Datenbank definiert zu haben.