Zobacz http://dev.mysql. com/doc/refman/5.6/en/create-table-foreign-keys.html
Jeśli raczej trudno odgadnąć ponieważ nie podałeś definicji roles
i permissions
tabele, ale parafrazując dokument...
- ...aby mieć klucz obcy w kolumnie, musisz mieć indeks w kolumnie „cel”.
- ...aby mieć klucz obcy w kolumnie, zarówno kolumny „źródłowe”, jak i „docelowe” muszą mają ten sam typ (w tym ten sam rozmiar, jeśli dotyczy).
- ...aby mieć klucz obcy w kolumnie, obie tabele muszą użyj silnika InnoDB.