Você só pode criar uma chave estrangeira em uma tabela que faça referência a uma chave em outra tabela. Este problema específico é que
memberid não é uma chave em nenhum dos groupmembers ou rolemembers mesas. Basta adicionar KEY (memberid) para essas mesas e você estará pronto para ir. Outra questão é que os tipos de chave estrangeira devem corresponder.
eventgroup tem groupid varchar , mas está referenciando os groups tabela, que tem groupid INT . Corrija isso. Quanto às sugestões, recomendo fortemente que cada chave primária seja apenas uma coluna:sua chave substituta de incremento automático. Você deve fazer esses inteiros sem sinal também.