这个问题已经有了答案:
Hierarchical database model
1个答案
我现在正在做一个项目,你可以保存讲师和学生的详细信息。
我不确定是否应该使用一个表User或两个表LecturerStudent
当你以讲师的身份登录时,你有特殊的权限作为项目的组管理页,在组页上加载学生不具有的权限。在tbl中有一列
User在注册时,您可以选择成为学生或讲师并输入一个特殊的页面
讲师代码。我正在使用php和mysql。
总之,我应该为学生和讲师使用1个status表,或者有2个单独的UserStudent表。
附加信息:一门课程可以有许多讲师和学生,但一个学生将有一门课程,作为讲师有许多课程。

最佳答案

好问题!
它可能看起来过于复杂,但是如果您想扩展这个系统,我强烈建议您将其建模得更加“规范化”。你已经在正确的轨道上认识到讲师和学生是同一个实体(人/用户)。诀窍在于,您应该对“角色”建模,然后对用户的角色建模。这就为模型的这一小部分创建了3个表。

USERS               USER_ROLES           ROLES
+------------+      +----------+         +--------+
| id         | <--> | user_id  |     /-->| id     |
| login_name |      | role_id  | <--/    | name   |
| etc        |      +----------+         +--------+
+------------+

users
======
id
login_name
etc

roles
=======
id
name

user_roles
===========
user_id
role_id
since

样本数据
USERS
+----+------------+
| id | login_name |
+----+------------+
| 1  | Chris      |
+----+------------+
| 2  | Cherri     |
+----+------------+


ROLES
+----+------------+
| id | name       |
+----+------------+
| 1  | Lecturer   |
+----+------------+
| 2  | Student    |
+----+------------+

USER_ROLES
+---------+---------+
| user_id | role_id |
+---------+---------+
|    1    |     1   | <-- Chris is a Lecturer
+---------+---------+
|    2    |     2   | <-- Cherri is a student
+---------+---------+
|    2    |     1   | <-- Cherri is also a lecturer
+---------+---------+

关于mysql - 我应该在MySql中为讲师和学生制作1到2张 table 吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26976716/

10-10 04:07