2012-02-06 94 views
1

该系统将两种类型的用户。管理员和普通用户。管理员只能访问产品。如果管理员可以访问产品A,这意味着他也可以访问其所有子产品。如何为用户,产品和子产品设计数据库模式?

普通用户只能访问子产品(一个或多个)。

添加屏幕管理员用户将有一个下拉的产品,而屏幕添加用户将有一个下拉的子产品。

产品管理员将添加产品子用户。

对于管理员用户和普通用户都会有一张表,因为两个用户的其他内容都相同。

请帮助。

+0

是的,但在这一点上我不关心角色。 – ashishjmeshram 2012-02-06 12:56:55

+0

是否有您想问的具体问题? – 2012-02-06 13:27:33

回答

1

你基本上看这个:

SystemUser: Id, AccountName 
SystemRole: Id, RoleName 
UserRole: SystemUserId, SystemRoleId 
Product: Id, ParentId, Name 

Product将对ParentId自我引用。如果它不是子类别,那么ParentId应该是NULL。您需要定义没有SystemRole"Admin"的任何人无法访问具有NULLParentId的任何Product

UserRoleassociation table,其提供的SystemUserSystemRoleM:N关系。即使每个用户都有一个角色,现在就可以按照这种方式设置结构,这样您的应用程序在未来可以更容易地扩展。