Большое приветственное сообщество
Мой вопрос связан с типом управления пользователями и пользователями схемы в Django. В начале я прошу вас извиниться на тот случай, если мои вопросы могут быть слишком «новичками» или бессмысленными, я начинаю связывать меня с Django Схемы пользователей и их различные возможности работы в проектах.
У меня следующая ситуация.
Я создаю приложение, в котором у меня будет три разных типа пользователей:
- Медицинский
- Пациент
- Физиотерапевт
Я использую схему аутентификации Django по умолчанию (django.contrib.auth).
Первоначально я думал об этой схеме сущностей, в которой таблица User является таблицей auth_user
, в которой Django сохраняет созданных пользователей:
У меня есть поля is_patient
, is_medical
и is_physiotherapist
, такие как логические атрибуты в таблице User.
Как конкретная деталь, я понимаю, что в модели Django по умолчанию Пользователь не может изменять или добавлять атрибуты или поля.
Это важная и веская причина, по которой я не могу добавить логические поля is_patient
, is_medical
и is_physiotherapist
в таблицу User.
Классическая рекомендация — расширить модель пользователя с помощью таблицы профилей пользователей, в которой я добавляю поля или атрибуты в модель пользователя через отношения OneToOne. Базовый образец выглядит следующим образом:
Таким образом, я понимаю, что мои пользователи в Django могут иметь полевую фотографию и загружать ее в данный момент...
Воспользовавшись предыдущим, следующая схема может подойти или может быть альтернативой для управления ролями пользователей (типы пользователей patient
, medical
и physiotherapist
)?
У меня будут отношения между:
Пользователь-медик и пользователь-пациент
физиотерапевт-пользователь и пациенты-пользователи
и так между ними и другими столами...
При таком подходе эти отношения не пострадают?
Различные пользователи будут сохранены между таблицами Users и UserProfile. Является ли это хорошей практикой в смысле масштабируемости? Мои таблицы могут быть аварийными или моя база данных?
Кроме того, я также видел другие альтернативы, такие как:
- Ролевая Таблица/Модель
У меня будет таблица/модель ролей, независимая или отдельная, и это может быть связано с моделью пользователя Django (например, у одного пользователя может быть много ролей). Этот подход может быть полезен, когда я хочу хранить эксклюзивную информацию о роли в спецификации ?
Я игнорирую или не знаю степень детализации, которая позволяет мне работать. С одной стороны, я видел, что система разрешений и авторизации позволяет мне работать с операциями создания, редактирования и удаления ....
Здесь я могу увидеть создание групп? Например, медицинская группа и назначать им разрешения и связывать эти разрешения с пользователями, составляющими группу? Это еще одна хорошая альтернатива? Эта опция кажется более одиночной, хотя я не знаю, может ли пользователь выполнять некоторые операции в соответствии с групповыми привилегиями, которые имеют ... Я не знаю, правильно ли это мышление
- AUTH_USER_MODEL Создание пользовательской модели пользователя а>
Мои требования к пациентам, врачам и физиотерапевтам требуют создания пользовательской модели пользователя?