Vedi http://dev.mysql. com/doc/refman/5.6/en/create-table-foreign-keys.html
Se è piuttosto difficile indovinare poiché non hai fornito le definizioni per i roles
e permissions
tabelle ma per parafrasare il doc...
- ...per avere una chiave esterna su una colonna, devi avere un indice nella colonna "target".
- ...per avere una chiave esterna su una colonna, entrambe le colonne "origine" e "destinazione" devono avere lo stesso tipo (inclusa la stessa taglia se applicabile).
- ...per avere una chiave esterna su una colonna, entrambe le tabelle devono usa il motore InnoDB.