Я работаю над приложением, в котором у меня 5-6 ролей. Да, это обычная вещь, но я столкнулся с проблемой. Я обрабатываю данные и свои таблицы.Обработка пользовательских Ролей на основе пользователей в базе данных
Я проверил другие сообщения, но большинство из них связано с Членством. Ну, справиться с этим я создал таблицу, которая содержит столбцы
TblUsers
- USERID
- Имя
- Roles-- В этой колонке я хранящей роли, как
Teacher
,Student
и т.д.
Но теперь я столкнулся с ситуацией, когда у пользователя может быть несколько ролей. Предположим, что пользователь - учитель и ученик, а также еще несколько.
Итак, мой вопрос заключается в том, как я должен управлять своей базой данных, чтобы она работала эффективно и разумная обработка базы данных должна была отражать и в будущем также должна хорошо работать над получением ролей и проверкой на «роли» и разрешать разрешения.
Одно решение, которое я думал, чтобы сохранить роли в другой таблице
tblRoles
Role_Id Role
1 Client
2 Teacher
3 Student
4 Superitendent
5 Principal
, а затем сохраняя роли в таблице пользователей следующим образом
tblUsers
User_Id Name Email Roles
1 Pin hh 1
2 Sin mm 1,2
3 ll ii 3,2
4 uu hv 3
или
User_Id Name Email Roles
1 Pin hh Teacher
2 Sin mm Client, Teacher.
Но делать это сделает вещи комплекс в кодировании?
Как я могу присоединиться и получить роли, если я использую описанную выше технику Предположим, что пользователь, у которого Id 2 вошел в систему, и чтобы получить роли пользователя, мне нужно сделать вот так:
var Roles=get Roles from tblUsers where user_id= 2
затем
Roles.split(',');
затем проверять счет и получать роли, как этот
var User_Role = get Role from tblRoles where Role='Roles[0]' ;
и если у меня есть более одного значения в Роли массива, то я должен позвонить базу данных снова и опять?
Пожалуйста, помогите мне в этом. Ваши предложения были бы очень полезны для меня.