Почему я должен использовать отдельную таблицу для поддержания ролей?
Я создаю проект, в котором есть несколько ролей, поэтому изначально я думал добавить столбец с именем "роль" в таблице пользователей и поддерживать роли. Но позже у меня появилось требование, например, добавить сотрудников под каждую роль.
Скажем, Agent & Institution - это две основные роли. Агент и Учреждение могут содержать одного или более сотрудников, и эти сотрудники имеют много категорий, таких как администраторы, сотрудники отдела продаж и т.д. (эти категории будут поддерживаться группами и разрешениями Django). (эти категории будут поддерживаться группами и разрешениями Django).
Для разграничения категорий сотрудников я думал добавить дополнительные роли, такие как "admin_staff" или "sales_staff", но я думаю, что это не масштабируемо? И поэтому я снова подумал о создании таблицы ролей для поддержания этого. Я немного запутался, как справиться с этой ситуацией
У меня есть два подхода:
Approach 1 :
Now my user table has these,
Class User:
name,
email,
.....
role
And thought of adding a extra field named: "role_name"
and make "role" as numeric and then keep track the categories of staff
using the role_name
example: role == 1 // agent and role_name == "admin_staff"
И мой второй подход:
create a new role table and have extra roles like
1. agent
2. institution
3. admin_staff
4. sales_staff
Но я считаю, что добавление дополнительной таблицы с ManyToMany является дополнительным бременем, и каждый раз мне нужно выполнять присоединение, чтобы проверить, о чем идет речь в ролях .
Подскажите, пожалуйста, как это можно обработать. В основном, как обрабатывать подроли роли. И все это делается в django
Django имеет встроенную систему аутентификации, поэтому вы определенно должны использовать ее, потому что она покрывает все ваши случаи.
Вы можете узнать больше здесь.