Вижте http://dev.mysql. com/doc/refman/5.6/en/create-table-foreign-keys.html
Ако е доста трудно за отгатване тъй като не сте предоставили дефинициите за roles
и permissions
таблици, но да перифразирам документа...
- ...за да имате външен ключ в колона, трябва имат индекс в колоната "target".
- ...за да имате външен ключ в колона, трябва колоните „източник“ и „целева“ имат същия тип (вкл. същия размер, ако е приложимо).
- ...за да има външен ключ в колона, и двете таблици трябва използвайте машината InnoDB.