【发布时间】:2011-12-15 22:17:15
【问题描述】:
假设你有学生
还有老师
学生使用与教师不同的界面登录网站
学生可以在网站上执行以下操作 - 查找成绩 - 给老师发邮件
教师可以在网站上进行以下操作 - 查找学生 - 输入成绩
您将如何设计数据库表以允许教师和学生登录?这个问题让我很困惑,因为我正在考虑做以下事情
- 有一张教师桌
- 拥有学生表
两个单独的表
所以
创建表老师 ( 名称 varchar(255), 电子邮件 varchar(100), 密码 varchar(100) )
创建表学生 ( 名称 varchar(255), 电子邮件 varchar(100), 密码 varchar(100) )
这是通常的做法吗?当您有两个不同的实体登录到两个不同的登录界面时?
--- 编辑---
如果两个实体有不同的字段怎么办?在这种情况下,您还会创建一个带有“角色”的用户表吗?
例如,如果您有以下情况:
(注意老师和学生有几个不同的字段。你还会创建一个表来放置它们吗??)
创建表老师 ( 名称 varchar(255), 电子邮件 varchar(100), 密码 varchar(100) num_of_students int,
)
创建表学生 ( 名称 varchar(255), 电子邮件 varchar(100), 密码 varchar(100), gpa 十进制 (10,2) )
【问题讨论】:
-
接受@Fatal 的回答:
create table user ( name varchar(255), email varchar(100), password varchar(100), role varchar(45)) -
@Jorge 我不会在
User表中按名称保存角色。我会有一个User、Role和User_Role表。User和Role实体之间存在 N:M 关系。这基本上是您在每个具有基于角色的安全性的应用中所拥有的。 -
@Fatal 很高兴知道。我必须更深入地研究数据库模式。