如何为用户,产品和子产品设计数据库架构?

时间:2012-02-06 12:44:51

标签: database-design

系统将有两种类型的用户。管理员和普通用户。管理员只能访问产品。如果管理员可以访问产品A,则意味着他也可以访问其所有子产品。

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

添加屏幕管理员用户将下载产品,而添加用户的屏幕将显示子产品下拉。

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

管理员用户和普通用户都会有一个表,因为其他所有用户都是相同的。

请帮忙。

1 个答案:

答案 0 :(得分:1)

你基本上是在看这个:

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

Product将在ParentId上进行自我引用。如果它不是子类别,则ParentId应为NULL。您希望未定义SystemRole "Admin"的任何人无法访问任何Product NULL的{​​{1}}。

ParentIdassociation table,提供UserRoleM:N的{​​{1}}关系。即使每个用户都只有一个角色,最好现在以这种方式设置结构,以便将来更容易扩展应用程序。