【发布时间】:2013-12-09 08:16:37
【问题描述】:
我正在开发一个我有 5-6 个角色的应用程序。是的,这是很常见的事情,但我面临一个问题。我正在处理自己的数据和表格。
我查看了其他帖子,但大多数都与会员资格有关。 好吧,为了解决这个问题,我创建了一个包含列的表
TblUsers
- 用户ID
- 姓名
- 电子邮件
- 角色-- 在本专栏中,我存储了
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]' ;
如果我在 Roles Array 中有多个值,那么我必须一次又一次地调用 Database?
请帮助我解决这个问题。你的建议对我很有帮助。
【问题讨论】:
标签: c# .net asp.net-mvc sql-server-2008 sql-server-2005