Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 导师学生协会同一用户表?_Mysql_Sql_Database Design - Fatal编程技术网

Mysql 导师学生协会同一用户表?

Mysql 导师学生协会同一用户表?,mysql,sql,database-design,Mysql,Sql,Database Design,我有一个users表,其中有一个role\u id列,链接到包含用户角色(学生、导师、管理员等)的roles表 导师可以有很多学生,一个学生可以有很多导师。有没有一种方法可以通过使用相同的users表来表示这种关系。这是一个多对多关系,但使用同一个表。我希望能够在UI上显示导师的学生以及分配给学生的导师。此时,我并不关心UI,而是关心如何在数据库中表示它 我不想为导师和学生创建不同的表,因为这样我就必须为不同类型的用户管理不同的表 请让我知道最好、最有效的方法。谢谢。您应该有以下表格: 1. u

我有一个users表,其中有一个role\u id列,链接到包含用户角色(学生、导师、管理员等)的roles表

导师可以有很多学生,一个学生可以有很多导师。有没有一种方法可以通过使用相同的users表来表示这种关系。这是一个多对多关系,但使用同一个表。我希望能够在UI上显示导师的学生以及分配给学生的导师。此时,我并不关心UI,而是关心如何在数据库中表示它


我不想为导师和学生创建不同的表,因为这样我就必须为不同类型的用户管理不同的表


请让我知道最好、最有效的方法。谢谢。

您应该有以下表格:

1. users : store all type of users
2. roles: all roles with id(student, tutor ...)
3. student_tutor (student_id, tutor_id)

存储多对多关系是一种更干净的格式

“因为这样我就必须为不同类型的用户管理不同的表”——怎么会这样?通常创建一个表,其中每个条目代表一个导师-学生关系。只需正常化,就像正常化一样。那么你的意思是我将创建一个单独的表,其中包含列tutor\u id和student\u id(一种多对多关系)@乌尔里切克哈特?这是最好和最有效的方式吗?“最好和最有效”是非常主观的,值得讨论。这是一种常见的方法,而且很有效,怎么样?我也有同样的想法。谢谢@UlrichEckhardt