gpt4 book ai didi

php - 数据库中的多个联接

转载 作者:行者123 更新时间:2023-11-29 14:51:57 25 4
gpt4 key购买 nike

这种情况很难解释,但我会尽力而为。

对于学校,我们必须创建一个网络应用程序(用 PHP 编写),让教师可以管理学生的项目并允许学生进行同行评估。由于学生众多,每个项目都有多个项目组(当然你应该只对自己的组成员进行同行评估)。

我的数据库结构目前如下所示:

用户:包含所有用户信息(user_id 为主)
表:项目:包含project_id、名称、描述和开始日期。

到目前为止,这非常简单。但现在变得更加困难了。

:包含一个group_id、一个组名,并且由于组是特定于项目的,因此它还包含一个project_id。
groupmembers:一个组包含多个用户,但用户可以位于多个组中(因为他们可以在多个项目中处于事件状态)。因此该表包含一个 user_id 和一个 group_id 来链接它们。

最后,管理员可以决定用户何时需要进行同行评估以及他们有多少时间进行评估。因此,最后一个表evaluations包含evaluation_id、开始和结束日期以及project_id(实际评估存储在第六个表中,目前不相关)。

我认为这是一个很好的设计,但是当我实际上必须使用这些数据时,它会变得更加困难。我想显示您仍需要填写的评估列表。您唯一知道的是您的 user_id,因为它存储在 session 中。

所以必须这样做:
1) 对组成员运行查询以查看用户属于哪些组。
2) 根据此结果,对组运行查询以查看这些组与哪些项目相关。
3)现在我们知道用户所在的项目,应该查询评估表以查看该项目是否正在进行评估。
4)我们现在知道了哪些评估可用,但是现在我们还需要检查第六个表以查看用户是否已经完成了此评估。

所有这些步骤都依赖于彼此的结果,因此它们都应该包含自己的错误处理。一旦用户选择了他们想要填写的评估(评估 ID 将通过 GET 发送),则必须运行大量新查询来检查该成员在其组中拥有哪些用户,并且必须进行评估并进行另一次检查查看哪些其他组成员已被评估)。

如您所见,这非常复杂。包含所有错误处理后,我的脚本将变得一团糟。有人告诉我“ View ”在这种情况下可能会有所帮助,但我真的不明白为什么这会对我有帮助。

有什么好的方法吗?

非常感谢!

最佳答案

你的思维太程序化了。

所有条件都应该轻松输入到 sql 语句的单个 where 子句中。

您最终将得到要评估的项目的单个列表。只有一个列表,只有一套错误处理。

关于php - 数据库中的多个联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5556013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com