【发布时间】:2012-03-26 00:48:42
【问题描述】:
我正在创建一个网站,其用户将包括客户和不同级别的管理员。推荐的做法是什么,或者为此设置数据库表的正确方法是什么?
客户和管理员都有用户名和密码。不过,客户也将拥有 CustomerCode 和 Location,而管理员将拥有不同的级别/角色。
它们应该是单独的对象吗?如果是,我应该如何将两者联系起来?
感谢您的任何意见。
【问题讨论】:
-
这里提出了类似的问题:stackoverflow.com/questions/3511782/… 我建议在此处和 Google 上进行一些搜索。有许多示例应该为您正在寻找的内容提供适当的解决方案。我个人会将它们分成单独的表格。任何有关 DBMS 和设计的书籍都会为您提供适当的解决方案。
-
当您说不同级别的管理员时,您是什么意思?是否有不同的特权,例如“设置时间”,“删除星球”,...?他们的行动范围是否有限制,例如用户、部门、部门、公司、盆栽?
-
@user92546 更像后者(但将来也可能具有不同的特权)-例如:销售人员只能查看/编辑他/她的客户提交的内容,设计师可以查看/编辑所有客户的意见。
-
@Becky - 我已经完成了定义了公司层次结构的系统:部门、细分、部门、公司。然后是一个功能表:创建小部件,编辑小部件,...。可以向用户授予对功能的访问权限,并且可以将访问权限限制在公司层次结构的任意部分。 UDF 隐藏了很多脏活,因此您可以轻松地询问“用户 42 可以管理部门 16 的电子邮件吗?”不用担心继承之类的。这是一项相当多的工作。
-
@user92546 我明白您在管理权限方面所说的内容。尽管我的情况没有那么广泛,但我可能会采用类似的方法来处理诸如 Roles、AccountRoles 和 RolesPermissions 之类的表。我想我对表格设置更不确定,因为客户有其他用户没有的字段。
标签: sql-server database-design