我正在开发一个“电子课程”应用程序,您可以在其中找到管理员,教师,学生和课程。 一个学生可以有很多老师和很多课程,一个老师可以有很多学生和很多课程,一个课程可以有一个老师但很多学生。
我想这样做,所以管理员有自己的登录页面,教师/学生共享相同的内容。 (顺便说一句,这是最好的方法吗?)
我的问题是,我是否应该将所有与登录相关的信息(用户名,密码,电子邮件)放入“用户”表中,并为所有其他信息分配表(“教师”,“学生”)?
我应该在“用户”表中包含一个指向“学生”/“教师”表的主要ID的密钥吗?
所有这些最好的方法是什么?帮助我,mysql大师:)
注意:我见过很多与我有关的问题,但没有一个真的回答了我的问题。
答案 0 :(得分:1)
我会比Abe Miessler建议更进一步,并在用户和角色之间创建一个参考表。
例如,教师作为学生注册并非不可能,因此需要在不同时间承担这两种角色。
USER_TABLE:
UserID PK
UserName
OtherUserData
ROLE_TABLE
RoleID PK
RoleName
USER_ROLES
UserID PK
RoleID PK
USER_ROLES has composite PK on UserTable.UserID AND RoleTable.RoleID