Siehe http://dev.mysql com/doc/refman/5.6/en/create-table-foreign-keys.html
Es ist ziemlich schwer zu erraten da Sie die Definitionen für die roles
nicht angegeben haben und permissions
Tabellen, sondern um das Dokument zu paraphrasieren ...
- ...um einen Fremdschlüssel auf einer Spalte zu haben, müssen Sie müssen einen Index für die "Ziel"-Spalte haben.
- ...um einen Fremdschlüssel für eine Spalte zu haben, müssen sowohl "Quell"- als auch "Ziel"-Spalten müssen vom gleichen Typ (ggf. inkl. gleicher Größe) haben.
- ...um einen Fremdschlüssel auf einer Spalte zu haben, müssen beide Tabellen müssen Verwenden Sie die InnoDB-Engine.