Consulte http://dev.mysql. com/doc/refman/5.6/en/create-table-foreign-keys.html
Se é bastante difícil de adivinhar porque você não forneceu as definições para os
roles
e permissions
tabelas, mas parafraseando o documento... - ...para ter uma chave estrangeira em uma coluna, você deve tem um índice na coluna "destino".
- ...para ter uma chave estrangeira em uma coluna, as colunas "origem" e "destino" devem têm o mesmo tipo (incluindo o mesmo tamanho, se aplicável).
- ...para ter uma chave estrangeira em uma coluna, ambas as tabelas devem use o mecanismo InnoDB.