Wie kann ich zwei Fremdschlüssel einer Zeile zuordnen?

Ich habe die Tabellenrollen und users . Die id von roles ist der Fremdschlüssel der Spaltenrolle in den Tabellenbenutzern.
Es gibt 2 Rollen: support und Manager. Wie kann ich angeben, dass der Benutzer peter den beiden Rollen zugeordnet ist?

Rollen

 | id | role | |----|---------| | 1 | support | | 2 | manager | 

Benutzer

 | id | user | pass | role (FK) | |----|----------|-------|-----------| | 1 | peter | hash1 | 1,2 | <-- 2 foreign keys | 2 | jennifer | hash2 | 2 | 

Dies ist ein klassisch viele zu viele Beziehungen. Ein Benutzer kann viele Rollen haben und eine Rolle kann vielen Benutzern zugewiesen werden. Sie sollten wahrscheinlich eine neue UserRole-Tabelle mit Info wie folgt erstellen:

 id userId roleId 1 1 1 2 1 2 3 2 2 4 ... 

Wenn du keine Surrogat-Schlüssel willst, entferne id und mache UserId + roleId Primary Key:

 userId roleId 1 1 1 2 2 2 

Ich würde eine dritte Tabelle – user_roles – mit den Spalten role_id und user_id hinzufügen