【发布时间】:2013-05-22 01:26:32
【问题描述】:
我目前正在为我们学校开发一个新的数据库/网络应用程序。我需要提供一些背景信息,以使我的问题更具相关性。
有许多不同的用户类型将访问此应用程序,每个用户类型都需要访问应用程序的不同部分,并且他们可能能够访问的每个“区域”具有不同的权限。
例如:
学生可以登录并访问那里的信息并更新他们的详细信息以及下载他们的报告副本(因此他们只能看到他们的信息)
老师可以登录并访问那里的信息以及他们教的所有学生
管理员可以登录并访问那里的信息以及他们管理的所有教师和学生
还有很多其他登录类型,但是对于这个问题,它们并不重要,因为从技术上讲,它们只是更多的用户,没有或需要自己的表来获取额外信息。
我在很大程度上决定了一个我很满意的结构,但是我一直在改变我认为最好的方式来完成以下工作。
我有一个用户表 (User_T),其中存储了所有相关的用户信息,(用户名、密码等)
但是,对于某些用户类型(EG、学生、员工、ETC),我也有单独的表,这是必要的,因为学生需要存储与员工不同的信息。 这就是我的问题所在,所有用户都有一些相同的基本字段(名字、姓氏、出生日期、性别等)。
我应该将这些存储在 User_T 表中吗?还是在单个表中?
如果我将它们全部存储在 User_T 表中,这使得应用程序更容易提取他们的信息并允许他们更新,例如在显示学生详细信息时,我需要引用 User_T 来获取学生姓名等
我目前的想法是,最好的选择是使用包含所有字段的单独表并将它们连接到视图 User_V 中,并带有一个指示数据来源的字段,以便在执行更新时它可以应用于相应的表。
想法?
【问题讨论】:
-
一个人可以担任多个角色,例如行政助理可以上课吗?
-
范围是否有其他限制。例如,教师的行为是否仅限于他们所在的部门或班级中的学生?
-
是的,一个人可以担任多个角色,例如,您可以是教师、经理,甚至是工资管理人员,您不仅需要访问不同的页面,还需要页面中的不同访问权限(例如:工资管理人员可以添加工资记录,经理不能,但可以查看记录),范围也有限制,例如讲师可能在德国部门,但可能只能查看或他们教的学生,以及管理员可能只能看到那里的学生等
标签: asp.net sql-server web-applications data-structures