适用于多种类型用户的数据库

时间:2014-06-22 23:27:32

标签: mysql database

我在这里一直在寻找不同的问题,我找不到与我的情况完全匹配的东西。

我正在为多种类型的用户设计数据库。我有一个主用户表,其中包括ID,用户名,密码,PasswordSalt,AccountType(枚举)和LastLoginDate。我需要有多种类型的帐户:学生,家长,SchoolAdmin,SystemAdmin,协调员和教师。我原本打算为每种类型的帐户分别设置一个表,但我意识到SchoolAdmin,Coordinator,SystemAdmin和Teacher都共享完全相同的数据。这些帐户类型都具有不同的权限。学生和家长帐户有额外的信息,他们必须存储。

然后我考虑将4个相同表共享的信息添加到User表然后删除这些表,但我遇到了另一个问题。我需要在其他表中引用不同类型的帐户。例如,我在俱乐部表格中有一个教师ID的外键,以显示俱乐部赞助商是谁。如果我将信息添加到User表并删除其他表,那么如何在另一个表中引用特定的帐户类型?

我从未设计过这样的数据库,所以任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:1)

在数据库模型上实现继承有三种主要方式。请检查以下链接,并研究哪个是解决问题的最佳方法。没有比这更好的方法来开始分析这类情况,成为一名优秀的建筑师。

Single Table Inheritance

Class Table Inheritance

Concrete Table Inheritance

每种不同的方法都有其优点和缺点,所以明智地选择。