MySQLには2つのテーブルがあります
役割
role_id | role_name
user_roles
user_id | role_id
user_roles テーブルの role_id はFOREIGN KEYです。role_id がuser_rolesテーブルにも存在する場合、 rolesテーブルの行の削除を制限したい
これは、テーブルの作成中に整合性設定から行うことができると思います。CASCADE や RESTRICT が何をし、どのように機能するのかわかりません。
FOREIGN KEYは Storage Engine MyISAMでサポートされていないことをどこかで読んだので、両方の Storage Engine ( MyISAMとInnoDB )について教えてください。