2012-09-08 41 views
0

我正在用java编写一个具有两种不同类型用户的Web应用程序学生&工作人员。我想为所有用户提供一个集中登录,但学生必须从教师处查看不同的页面。我目前实施的方式是使用一个登录表单,并输入用户名&密码并运行两个查询,一个在学生表上,另一个在职员表。如果我从用户表中获得了成功的响应,那么我将用户登录到学生页面,否则,如果我在教师页面上获得成功的结果,则查询教师表格,否则我会提供错误消息,表明用户名和密码无效。我想知道的是,如何才能改善这一点,只需要一个查询就可以了,我不介意编辑数据库以促进这一点。从相同登录表单登录两种不同类型的最佳方式

+2

为什么只执行单个查询如此重要?这听起来不像是重新设计数据库的充分理由。 – cheeken

+0

而不是'select * from student ...'和'select * from staff ...',你可以简单地从两个表中选择:'select * from student,staff ...',但是你没有显示你的模式所以我们应该如何帮助? –

回答

1

对于明确的答案,这太开放了,但通常将authenticationauthorization分开。

这样做的一种方法是创建一个用户表和一个角色表,其中用户表处理认证和控制授权的角色表。用户通过连接表与角色(甚至可能是多个角色)相关联。

通过这种方法,登录仅对用户表执行查询,以确定某人是有效用户,并且该应用程序的其他部分查询与登录用户关联的角色或角色,以确定是否访问一个特定的功能是允许的。

1

也许你可以在表单中添加一个下拉列表,以便他们可以选择他们是否想以用户身份或员工身份登录?