Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Php 将继承应用于我的SQL表结构_Php_Database_Mysqli - Fatal编程技术网

Php 将继承应用于我的SQL表结构

Php 将继承应用于我的SQL表结构,php,database,mysqli,Php,Database,Mysqli,我正在为教师和学生开发一个移动应用程序。。。数据库包含教师、学生和校长等表。根据角色的不同,所有这些表都有不同的列 现在我想要一个名为posts的表,它存储来自所有这些用户的帖子 问题1:我无法使用列角色定义名为users的表来标识特定用户,因为这些角色具有不同的列/属性 还有。。。对于这些用户,我定义了两列,一列是对所有教师和学生唯一的id…另一列是像T23(对于id为23的教师)和S44(对于id为44的学生)这样的用户id 现在我已经创建了包含以下列的posts表:id、user\u is

我正在为教师和学生开发一个移动应用程序。。。数据库包含教师、学生和校长等表。根据角色的不同,所有这些表都有不同的列

现在我想要一个名为posts的表,它存储来自所有这些用户的帖子

问题1:我无法使用列角色定义名为users的表来标识特定用户,因为这些角色具有不同的列/属性

还有。。。对于这些用户,我定义了两列,一列是对所有教师和学生唯一的id…另一列是像T23(对于id为23的教师)和S44(对于id为44的学生)这样的用户id

现在我已经创建了包含以下列的posts表:id、user\u is、description、date\u created、Status

现在我不确定。。。如何
获取所有帖子以及用户名(Join在这里应该如何工作)

我认为更好的解决方案是用户-组-角色表

用户是显而易见的;这些是你的学生和老师

组是将用户和角色关联起来的多对多联接表。(一个组可以有多个用户和多个角色)

角色通常是可疑的:读/写/删除/执行

将角色分配给组,然后将用户添加到组。这样,您可以允许学生以只读方式访问其记录,但教师可以对其所有学生的记录进行读/写访问

您可以将教师与管理员分开:教师只能对他们所教的学生进行读/写,但管理员应该能够读/写学校中的所有学生。
这种安排的另一个优点是,您不必每次用户更改角色时都编辑用户行。您所要做的就是修改分配给他们的组。

我认为更好的解决方案是用户-组-角色表

用户是显而易见的;这些是你的学生和老师

组是将用户和角色关联起来的多对多联接表。(一个组可以有多个用户和多个角色)

角色通常是可疑的:读/写/删除/执行

将角色分配给组,然后将用户添加到组。这样,您可以允许学生以只读方式访问其记录,但教师可以对其所有学生的记录进行读/写访问

您可以将教师与管理员分开:教师只能对他们所教的学生进行读/写,但管理员应该能够读/写学校中的所有学生。
这种安排的另一个优点是,您不必每次用户更改角色时都编辑用户行。您所要做的就是修改分配给他们的组。

创建一个包含两列(角色id、角色)的表
角色
,将学生、教师和校长放在其中。使用列role\u id更改用户表。现在,在posts表中,user\u id始终为1个用户(教师、学生或校长)。只需将不同的列添加到用户表中,但如果1个用户角色不需要这些列,则将它们设置为null;几乎就像一个存储blob的文档数据库。一个用户将有许多帖子,每个帖子都有一个时间戳和一个外键引用,指向编写它的用户。独立于组或角色。创建一个包含两列(角色id、角色)的表
ROLES
,将学生、教师和校长放在其中。使用列role\u id更改用户表。现在,在posts表中,user\u id始终为1个用户(教师、学生或校长)。只需将不同的列添加到用户表中,但如果1个用户角色不需要这些列,则将它们设置为null;几乎就像一个存储blob的文档数据库。一个用户将有许多帖子,每个帖子都有一个时间戳和一个外键引用,指向编写它的用户。这是独立于组或角色的。看起来不错…正如我在wordpress或Drupal中看到的结构。但学生有分数、出勤率等栏,老师或管理员没有。如何管理不同的列。。。你能举个例子吗?分数?还是分数?我认为一个规范化的设计会让学生们知道结果。一个学生可以注册多个课程,每个课程都有多个分数。你的设计似乎太简单了,没有用处。要求中没有课程。。。。只有考试、家长、学生、教师、管理员、超级管理员、问题、徽章等。学生的分数列显示总体百分比…因此它可以是每个学生的财产。考试表将记录个人成绩。只是没有弄清楚。。。如何实现用户->教师、家长、学生、管理员。学生参加一次以上的考试?那么分数不应该在用户表上。徽章?我不明白那是什么。学生、教师、管理员、超级管理员、超级管理员-所有角色。一次考试将有一个或多个问题行。考试的分数会从每个问题的结果中加起来吗?每个学生都有一排考试?或者你是说老师组成的老师?模糊思维;糟糕的设计。看起来不错…就像我在wordpress或Drupal中看到的结构一样。但学生有分数、出勤率等栏,老师或管理员没有。如何管理不同的列。。。你能举个例子吗?分数?还是分数?我认为一个规范化的设计会让学生们知道结果。一个学生可以注册多个课程,每个课程都有多个分数。你的设计似乎太简单了,没有用处。要求中没有课程。。。。只有考试、家长、学生、教师、管理员、超级管理员、问题、徽章等。学生的分数列显示总体百分比…因此它可以是每个学生的财产。考试表将记录个人成绩。只是没有弄清楚。。。如何实现用户->教师、家长、学生、管理员。学生参加一次以上的考试?那么分数不应该在用户表上。徽章?我不明白那是什么。学生、教师、管理员、超级管理员、超级管理员-所有角色。一次考试就可以了