Irgendwie nicht so richtig.
Sicher das jeder nur eine Rolle bekommen soll?
Wenn Du das Datenmodell erstellst, muss der Scriptaufbau (Reihenfolge) natürlich so sein, dass die Fremdschlüsselanweisungen auf eine bereits angelegte Tabelle zeigen.
Rollen legt man eher so an, dass sie unterschiedliche Themen abdecken und dann per User mehrere in Kombination eine sinnvolle Mischung ergeben.
Dann gibt es eine Reihe von Standardrollen, die die meisten User so bekommen und ein paar Spezialisten bekommen on Top Adminrechte oder wie hier im Forum bspw. Moderationsrechte. Die Rollen können dann auch teilweise überlappen, es zählt, was in Summe, Distinct an Einzelrechten einem User zugeordnet ist.
Irgendwie glaub ich meinen wir eventuell das gleiche aber reden dann doch aneinander vorbei.
Allerdings kann ich dir auch nicht ganz folgen was Du mit Mischung meinst.
User A = Admin
User B = Standard Nutzer
User C = Gast
Also bei mir ergibt sich jetzt da keine Mischung, es sei denn Du meinst was komplett anderes als ich, wenn ja vielleicht kanst Du mal zeigen wie Du dir das vorstellst, klingt interessant und ist ggf. wesentlich flexibler bzw. besser umzusetzen.