2010-03-02 49 views
1

我正在寻找一个通用的开放源码数据库架构来实现基本登录和用户角色管理。用于分层用户和角色表示的数据库架构

用户:属于属于客户的业务单位。

用户有角色 - 经理,区域经理,现场经理,工人等,用户可以依赖的业务单元和多个业务部门的多重角色..

业务单元属于客户。 业务单位可以包含其他业务单位(地区包含其他地区包含业务单位)。

特点:描述系统中的行为实体。 功能分配给用户或角色或两者,并且业务单位和/或客户端具有在系统内活动的功能。

举例来说,它是一个会计系统,并且具有诸如应付账款,应收账款,报告,总账等功能,基于活动中的客户/业务单位/角色/用户的活动,用户看到是那个有源矩阵层次结构。

有没有人有类似这样的模式参考,满足这些基本要求?如果它具有基于Web的界面的代码(用户登录,管理用户,区域,角色等),则为奖励.Net C#首选,但我可以翻译。

+0

外貌像一个家庭作业问题。如果我解决这个问题,我可以获得学位吗? – dar7yl 2010-03-02 20:19:23

+1

明确地说不是作业,只是试图在一些设计思想上加强。 PS,我在25年前实际上教过CS班。 :) – 2010-03-02 20:57:51

回答

0

不正是你要找的东西,但一个开始:

http://www.databaseanswers.org/data_models/user_identity_management/index.htm

你看一看ASP.NET成员资格?有一个脚本可以创建.net目录中的所有对象。如果您在Visual Studio中使用默认值创建网站,则有一个网站管理工具来管理用户。

+0

那么,这是一个开始,会看到还有哪些其他选项沿着这些路线弹出。谢谢。也许这两者的结合将提供我预见的这个级别的许多需求。 – 2010-03-02 20:16:38

1

要求在SQL数据库中实现这个要求有多困难?有很多设计可以工作,但是如果你正在寻找现成的东西,那么你所描述的是LDAP,以tee。这只是描述协议,但有许多不同的开源实现,包括Apache Directory ServerOpenLDAP。维基百科有一个广泛的list of LDAP software

这是要考虑的事情。如果您需要将其与另一个SQL数据库紧密集成,为用户强制执行参照完整性等,那么这可能对您无效。但是如果你正在寻找一些通用和可扩展的东西,这可能是一条可行的路。您会发现大多数成员/角色数据库(如由ASP.NET SQL Server Registration Tool创建的数据库)都不是分层的,因为松散层次结构有点复杂。

如果您需要嵌套任意数量的业务单位,那么管理所有规则和覆盖并不是一项简单的任务。这正是我们拥有分层目录协议的原因。

(注 - 如果您在微软环境是已经那么的Active Directory将是显而易见的选择;它不是开源的,但它可能是最强大和最良好支持的任何目录服务器)

+0

真的在寻找SQL脚本和管理 - 它确实比我描述的更复杂,但是寻找一个开始的地方。访问很重要,但层次结构所形成的业务层的管理更加需要。 – 2010-03-02 20:11:26

+0

不幸的是,管理层次结构不仅仅是创建数据库模式;有各种各样的分层查询,报告,规则等等。一般而言,您正在寻找某种“继承”。这不过是“基本”。这就是为什么有那些执行这些功能的整个系统。如果你不能使用它,那么这听起来像你已经理解了关系,所以只需使用其中一种常见模型 - 邻接表,嵌套集,物化路径或'hierarchyid'来建模主要层次关系(业务单元)。 – Aaronaught 2010-03-02 22:53:20

相关问题