Vous ne pouvez créer une clé étrangère sur une table qui fait référence à une clé sur une autre table. Ce problème spécifique est que memberid n'est pas une clé sur les groupmembers ou rolemembers les tables. Ajoutez simplement KEY (memberid) à ces tables et vous serez prêt à partir.
Un autre problème est que les types de clés étrangères doivent correspondre. eventgroup a groupid varchar , mais fait référence aux groups table, qui a groupid INT . Corrigez ceci.
En ce qui concerne les suggestions, je recommande très fortement que chaque clé primaire ne soit qu'une seule colonne :votre clé de substitution à incrémentation automatique. Vous devriez également créer ces entiers non signés.