教师学生数据库设计

Lou*_*ost 1 php mysql sql database

假设你有学生

而且你有老师

学生使用与教师不同的界面登录网站

学生可以在网站上执行以下操作 - 查找成绩 - 电子邮件教师

教师可以在网站上执行以下操作 - 查找学生 - 输入成绩

您将如何设计数据库表以允许教师和学生登录?这个问题让我困惑,因为我正在考虑做以下事情

  • 有一个老师桌
  • 有一张学生桌

两个单独的表

所以

create table teacher(name varchar(255),email varchar(100),password varchar(100))

create table student(name varchar(255),email varchar(100),password varchar(100))

那通常是怎么做的?当您有两个不同的实体登录到两个不同的登录界面?

---编辑---

如果这两个实体有不同的领域呢?在这种情况下,您是否仍会创建一个带有"角色"的Users表.

例如,如果您有以下内容怎么办:

(请注意老师和学生有几个不同的领域.你还会创建一个表来把它们放在一起吗??)

create table teacher(name varchar(255),email varchar(100),password varchar(100)num_of_students int,

)

create table student(name varchar(255),email varchar(100),password varchar(100),gpa decimal(10,2))

Jon*_*onH 6

我会考虑只将它作为一个表并添加一个TypeID,其中TypeID会将人的类型分类为学生或教师.

看看这两个表的设计,它们完全相同,这应该是一个信号给你,你可能会过度的事情.

通过将其保存在2个单独的表中,可以为您提供更多UI工作,并为输入数据的人员提供更多管理工作.

通过将其组合到一个表中并引入分类或类型字段,您可以消除所有额外的工作.

CREATE TABLE Users ( ID int, Type int, name varchar(255), email varchar(100))

我也不会将密码存储为纯文本,因为看起来你可能正在暗示password varchar(100). Type在这种情况下,如果只有两种类型的人员将是学生和教师,则可以是int或甚至一点数据类型.该领域可以是IsTeacher1名教师,0名是学生.但在大多数情况下,您最终意识到您需要不同类型的用户,因此需要int数据类型.