каким способом это лучше реализовать (и есть ли еще другие способы)?
Да. Таблицы Пользователь - Группа - Роль связаны связью 1-М (внешний ключ). Даю подсказку: пользователю назначается группа по-умолчанию. Оная может иметь ссылку на роль или нет — вам решать своё противоречие: группы нет, но роль должна быть. Если решите, что роль обязательна, то назовите группу так же как роль.
Так же неплохо ознакомиться с любой готовой системой Пользователь, Группа, Роль. Там есть множественные связи пользователя с группами и ролями. Итоговые роли являются суммой ролей групп и индивидуальных ролей. Усложнение: роль может быть как разрешительная, так и запретительная. MS в этом случае даёт привилегию запрету.