【发布时间】:2010-11-23 03:28:39
【问题描述】:
这个问题不是关于 RBAC 系统本身的数据库设计,而是当 Web 应用程序允许其用户提交内容时,如何将此数据库与应用程序特定的数据库结合使用。
就目前而言,我的 RBAC 应该可以轻松地用于简单的后端管理应用程序,员工可以在其中添加和更新记录 - 例如,在线商店通常没有用户提交的内容。这两个数据库可以保持独立。但是,我不确定如何将我的 RBAC 设计用于允许其用户提交内容的网站/应用程序。我将在两个数据库中有两个用户表,它们需要添加/更新记录的权限。
我是否将我的 RBAC 数据库合并到网站数据库中并共享用户表?
我是否将两者分开?
做点别的吗?
如果选项 2 我这样做:
(A) 将网站数据库中的用户复制到 RBAC 用户表中
(B) 在网站数据库中创建与用户表的关系
(C) 在网站数据库中为网站用户创建一个新的 RBAC 系统,并为管理员用户提供单独的 RBAC?
A 似乎很糟糕,因为我正在复制数据,但似乎很容易实现。 B 似乎很难与两个单独的用户表建立关系。 C 也是重复的,但我可以在不影响“管理员”RBAC 的情况下大量自定义此 RBAC。
我基本上是想让我的 RBAC 系统尽可能地可重用,并且让特定于应用程序的用户能够提交内容让我有点难以理解。
我的这个小 RBAC 系统主要是我学习的一种方式,所以请不要通用“你应该使用框架 x/y/z”。使用我最近发现的一个术语,我有点像车轮书呆子,每当我好奇的时候就喜欢重新发明它们! :)
我将在我的网站上使用 MySQL 和 PHP,但这无关紧要,因为这是我在这里询问的数据库设计。
如果我的问题不清楚,请告诉我,我会进一步解释。谢谢大家的时间。
【问题讨论】:
标签: database-design web role rbac