控制不同的访问级别

时间:2010-08-03 17:21:56

标签: php authentication

我计划使用两个表(即访客和员工)来控制哪个页面可供哪个用户使用。

猜测可以注册一个帐户,而员工则不能。员工的帐户只能由系统管理员分配。

以下是我刚刚发现的问题:

假设UserA是一名员工,其用户名为“login001”,密码为“password”。

现在,网站上有一个猜测并申请一个名为'login001'和'password'作为密码的用户名。

然后,用户B可以访问某些内部网站,而他/她选择的用户名/密码与员工之一相同。

以下是我对此问题的解决方法:

方法一: 无论何时应用用户名(无论是猜测还是员工),都应检查表猜测和员工,以确保没有重复。

方法二: 将猜测和员工表一起组合为人员表。但是,对于guess,user_type可以指定为GUEST,而对于employee,user_type可以指定为EMPLOYEE。

我不知道上述方法是否有意义。如果两者都不是好的解决方案,请给我一些指导,以便采取一些最佳实践。

我没有使用任何框架或OOP来实现我的PHP脚本。

谢谢

2 个答案:

答案 0 :(得分:2)

我建议您将两个凭证表合并为1.然后,您可以创建一个guestemployee表,其中包含对凭证表的引用。这样您就可以存储有关这两者的其他信息。

但是,您可能想问自己,客人和员工之间的区别是什么。如果唯一的区别是访问控制,您可以在凭证表中使用额外的列来定义记录是访客记录还是员工记录。

最后,一旦将凭据合并到一个表中,就应该在用户名列上添加一个唯一约束。这样可确保只有一个帐户可以拥有login001joeshmoe等用户名。

答案 1 :(得分:1)

您应该将所有登录放在一个表中,因为它们将共享许多相同的列。这些重复的列不是雾化数据的理想方式。

使用方法二,它会在以后最大限度地减少您的头痛,并且数据更容易理解。