и его роль.
Модели БД реализованы через SQLalchemy
class User(db.Model):
...
class Role(db.Model):
...
Связь у двух этих моделей many to many
Связь реализована через SQLalchemy relationship
Задача:
Понять, юзер имеет все возможные роли или только часть из них.
Если все, то условно вернуть True.
Возможное решение:
1) Посчитать количество всех ролей
2) Найти нужного юзера и посчитать сколько у него ролей
3) Если количество из п.1 совпадает с количеством п.2, то у юзера все роли
Интуиция подсказывает, что это решение - говнокод.
Как правильнее решить задачу?
select count(*) from Role where not exist ( select from RoleUser where user_id=% and role_id = role.id )
Обсуждают сегодня