Database 用户帐户的数据库设计

Database 用户帐户的数据库设计,database,postgresql,database-design,Database,Postgresql,Database Design,我正在为学校管理系统的一部分设计一个数据库。我不确定如何设计用户/帐户部分,以便在我的应用程序建立在它的基础上时它是安全和智能的 帐户角色:学生、实习主管、学校管理员、系统管理员、超级用户。 学生必须参加强制性实习(表“实习生”)。 实习主管将监督他们并查看统计数据。 学校管理部门也将看到统计数据 我想为学生保留的数据是:他们的学号、名字和姓氏 至于其他角色,他们显然没有学生号,也不一定要有他们的名字,但也许这是个好主意——我不确定。你觉得怎么样 我的困境来了:如何设计数据库的帐户/成员/用户部

我正在为学校管理系统的一部分设计一个数据库。我不确定如何设计用户/帐户部分,以便在我的应用程序建立在它的基础上时它是安全和智能的

帐户角色:学生、实习主管、学校管理员、系统管理员、超级用户。 学生必须参加强制性实习(表“实习生”)。 实习主管将监督他们并查看统计数据。 学校管理部门也将看到统计数据

我想为学生保留的数据是:他们的学号、名字和姓氏

至于其他角色,他们显然没有学生号,也不一定要有他们的名字,但也许这是个好主意——我不确定。你觉得怎么样

我的困境来了:如何设计数据库的帐户/成员/用户部分,使其对我的应用程序有用、智能和安全?我应该去掉“学生”表并将所有用户保留在“帐户”表中吗?还是保留“学生”表并将其与“帐户”表连接起来更好?或者可能有一些标准和良好实践建议其他方法? 我在下面添加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)

通过这种方式,您可以处理包、用户角色和用户数据。好的,您需要设计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)
通过这种方式,您可以处理包、用户角色和用户数据