Voir http://dev.mysql. com/doc/refman/5.6/en/create-table-foreign-keys.html
Si c'est plutôt difficile à deviner car vous n'avez pas fourni les définitions des roles
et permissions
tables mais pour paraphraser la doc...
- ...pour avoir une clé étrangère sur une colonne, vous devez avoir un index sur la colonne "cible".
- ...pour avoir une clé étrangère sur une colonne, les colonnes "source" et "cible" doivent ont le même type (y compris la même taille, le cas échéant).
- ...pour avoir une clé étrangère sur une colonne, les deux tables doivent utiliser le moteur InnoDB.