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))
我会考虑只将它作为一个表并添加一个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数据类型.
| 归档时间: |
|
| 查看次数: |
3350 次 |
| 最近记录: |