在 Laravel 中正确设计数据库结构

Posted

技术标签:

【中文标题】在 Laravel 中正确设计数据库结构【英文标题】:Properly designing database structure in Laravel 【发布时间】:2022-01-12 22:30:43 【问题描述】:

我想问一下您对此有何看法。

简而言之,该应用程序有几个角色,管理员、教师和学生。

学年从特定日期开始,并在某一天结束。示例 1.9.2021 至 20.6.2022。 每个学生都有测试,结果应该由老师管理。默认测试,每年记录2次结果。

每个测试结果都以秒为单位,然后您有一个表格,其中包含每个性别和年龄的最小值-最大值,您可以使用该表格与当前结果进行比较。

然后每个学生都有一个称为存档的记录,他可以在其中查看他以前的记录。我怎样才能做到这一点?

目前使用 Laravel 8.7 和 php 8.0

【问题讨论】:

【参考方案1】:

您可能知道,在 MVC(模型-视图-控制器)框架中,模型实际上是一个数据库实体,控制器是您的应用程序逻辑所在的位置,视图将数据显示给用户。

因此,对于您的应用程序,我推荐以下结构:

型号:

管理员 老师 学生 学期 测试 测试结果

控制器:

管理员控制器 教师控制器 学生控制器 学期控制器 测试控制器 TestResultController

您可以决定哪些视图是必要的。

例如:

students_list 学生信息 test_results

如果您需要更多解释,请告诉我

【讨论】:

【参考方案2】:

添加不同的模型作为 User、School、SchoolSession、SchoolSessionTest、SchoolSessionTestQuestion、SchoolSessionTestResult 从模型的名称来看,关系应该是不言自明的 具有最小值-最大值的表可以通过对您的用户模型的某些分组查询来实现。

【讨论】:

以上是关于在 Laravel 中正确设计数据库结构的主要内容,如果未能解决你的问题,请参考以下文章

与用户表相比,学生与教师之间的正确结构关系

Laravel:混合用户数据库架构

Laravel 5 检查权限

Laravel5设计json api时候的一些道道

Laravel - 迁移,表结构修改 - 正确方法

在 laravel 中将“历史数据”存储到数据库中的正确方法是啥?