用户帐户的数据库设计
问题描述:
我正在为学校管理系统的一部分设计数据库。我不确定如何设计用户/帐户部分,以便在我的应用程序基础上安全且智能。用户帐户的数据库设计
帐户角色:学生,实习主管,学校管理部门,系统管理员,超级用户。 学生必须参加强制性实习(表格“实习生”)。 实习主管将监督他们并查看统计数据。 学校管理部门也会看到统计数据。
我想留给学生的数据是:他们的学号,姓和名。
至于其他角色,他们显然没有学号,并且名字也不是必须的,但也许这是一个好主意 - 我不确定。你怎么看?
我的困境是:如何设计数据库的account/membership/users部分,以便它对我的应用程序有用,智能和安全?我应该摆脱“学生”表,并保持所有用户在“帐户”表?还是保留这个“学生”表并将它们与“帐户”表结合起来会更好?或者也许有一些标准和良好的做法,表明其他方法? 下面,我将UMLS:
设计1:
设计2:
答
那么,你需要设计6张桌子
Users (id, name, email, phone etc)
Userroles (id, title)
users_to_Userroles (many to many) (contains userId and userRoleId)
packages (id, title)
package_rules (id, packageId, discount, free, etc)
packages_to_users (contains userId, packageId)
通过这种方式,您可以处理包裹和用户角色以及用户数据