0

我有一个这样的数据库设置(我知道这不是最好的设置,但我无法更改它:-(

基本上有 3 个级别的用户 - 管理员 - 经理 - 员工

几点注意事项: - 每个员工都属于部门 - 如果员工登录代码出现在经理表中,则他们是经理,否则他们是员工 - 如果员工登录代码出现在经理表中并且 SystemAdmin 设置为 1,他们是管理员

我到底该如何为此设置 ACL/Auth?有任何想法吗?

CREATE TABLE tblStaff( StaffIDint(11) NOT NULL auto_increment, dept_idvarchar(5) default NULL, logon_codechar(10) NOT NULL, forenamechar(50) NOT NULL, surnamechar(50) NOT NULL, PRIMARY KEY ( StaffID), ) ;

创建表tblManagerManagerIDvarchar(15)NOT NULL, logon_codevarchar(15)NOT NULL, dept_idvarchar(5)NOT NULL, SystemAdmintinyint(1)无符号默认NULL,PRIMARY KEY(ManagerID));

CREATE TABLE tblDepartment( dept_idvarchar(5) NOT NULL, sect_idvarchar(50) 默认 NULL, subsect_idvarchar(50) 默认 NULL, sect_namevarchar(50) 默认 NULL, sect_abbrvarchar(50) 默认 NULL, subsect_namevarchar(50) 默认 NULL, PRIMARY KEY ( dept_id) ;

4

1 回答 1

1

老实说,我不明白为什么 tblStaff 和 tblManager 在您的示例中应该分开。他们不都是某种意义上的“员工”,即“员工”吗?

为什么不:

创建表 tblUsers(UserID、logon_code、dept_id、SystemAdmin、firstname、lastname 等)

毕竟,无论他们是“员工”还是“经理”,他们都将是您应用程序的“用户”。

此外,如果您需要更多地分离这些,您可以添加另一个字段(例如 user_level_id),这将确定每个用户的角色。之后,Auth/ACL 应该相当简单。

于 2009-06-04T06:56:20.693 回答