Есть модели: User, Pupil, Teacher, Admin
User может быть Pupil, Teacher, Admin
в последних трех моделях есть поле user_id(foreign key на User)
User:
id
... (другие поля)
pupil = relationship(Pupil)
teacher = relationship(Teacher)
admin = relationship(Admin)
Для того чтобы понимать какие роли присвоены пользователю, стоит ли создавать модель Roles (в классе пользователя будет поле roles = relationship(Roles, lazy='joined')) где поля (role_name, user_id) или когда подгружаю пользователя стоит подгружать все остальные модели с помощью параметра lazy='joined'?