Можете да създадете външен ключ само в една таблица, който препраща към ключ в друга таблица. Този конкретен проблем е този memberid не е ключ за groupmembers или rolemembers маси. Просто добавете KEY (memberid) до тези маси и ще сте готови.
Друг проблем ни е, че типовете външни ключове трябва да съвпадат. eventgroup има groupid varchar , но препраща към groups таблица, която има groupid INT . Коригирайте това.
Що се отнася до предложенията, силно препоръчвам всеки първичен ключ да бъде само една колона:вашият сурогатен ключ за автоматично нарастване. Трябва да направите и тези цели числа без знак.