Как реализовать отношения?

Для создания ролей в проекте можно использовать таблицы: roles, users, users_roles, и тогда каждый пользователь сможет иметь разные роли и наоборот.Но в проекте имеются модели projects - это своеобразные группы с пользователями . Нужно сделать так, чтобы пользователь мог иметь роли в одном проекте а также и в других. То есть я могу быть админом в project1, а в project2 буду модератором.
Не могу понять как реализовать таблицы.
Какие идеи?
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
В простом случае в users_roles будет первичный ключ на 3 поля: user_id (fk), role_id (fk), project_id (fk)
Приключения будут если потребуется сделать глобальную суперроль на все проекты. Можно сделать users_roles для глобальных прав и отдельно users_project_roles для дополнительных прав на конкретные проекты.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы