Puoi creare una chiave esterna solo su una tabella che fa riferimento a una chiave su un'altra tabella. Questo problema specifico è che memberid non è una chiave né su groupmembers o rolemembers tavoli. Aggiungi semplicemente KEY (memberid) a quei tavoli e sarai a posto.
Un altro problema è che i tipi di chiavi esterne devono corrispondere. eventgroup ha groupid varchar , ma fa riferimento ai groups tabella, che ha groupid INT . Correggi questo.
Per quanto riguarda i suggerimenti, consiglio vivamente che ogni chiave primaria sia solo una colonna:la tua chiave surrogata con incremento automatico. Dovresti creare anche questi numeri interi senza segno.