我找不到在 MySQL 上的学校数据库中实现消息的方法

Posted

技术标签:

【中文标题】我找不到在 MySQL 上的学校数据库中实现消息的方法【英文标题】:I can't find a way to implement messages in my school database on MySQL 【发布时间】:2018-10-16 08:42:28 【问题描述】:

我正在开发一个学校数据库,我希望在该数据库上实现由学校创建的信息,供家长查看。

工作流程如下:

1. 学校向某组学生发送消息,可以是给该学校所有学生的消息,也可以是只给一年级的消息,也可以是给教室 1B(1 是年级,B 是小组),甚至是只给 1 个学生的信息。

2. 家长访问一个平台,他们将在该平台上看到有关其孩子的消息。

例如:

如果学校向教室 1B 发送消息,则只有该教室有孩子的家长才能看到。

如果学校向第一年发送消息,则只有父母 第一年的孩子会看到它。

我需要帮助的是:

如何安排数据库以完成消息 过滤(按学校按年按教室(1B、2A、 等)和学生)?

为了检索我需要使用什么句子 给父母的关于他们孩子的信息?

我希望我能很好地解释自己,如有任何问题,请随时提出,非常感谢:)

这是数据库的图片:

【问题讨论】:

欢迎来到 SO。请提供一个最小、完整和可验证的示例。 向我们展示您最近尝试的代码以及您遇到的问题。并解释为什么结果不是你所期望的。编辑您的问题以包含代码,请不要在评论中添加它,因为它可能不可读。 ***.com/help/mcve 注意group是保留字。 消息如何存储在哪个地址,例如一个小组或一年,而不是一个学生?还是每个收件人的每封邮件都是重复的? 您可能需要考虑创建另一个实体来表示消息和学生之间的 n:m 关系。 嗨,Jimmy,我创建了那个“消息”表,希望能够使用它来存储消息的内容、创建消息的学校(在“ID_school”字段中)和学生关于消息,例如,如果我只想向单个学生发送消息,我会将学生 ID 放在“ID_student”字段中,而其他字段将保持为 Null。当我尝试为父母创建句子以查看消息并忽略具有 Null 的字段时,问题就出现了。 【参考方案1】:

如果我理解得很好,对于这个问题“我需要使用什么句子来检索父母关于他们孩子的消息?”您可以在 id_students are equals 上的 message 和 parent_detail 之间使用简单的内部连接,其中 id_parent 是您的 parentID:

SELECT * FROM `message` m
INNER JOIN `parent_detail` p_d on p_d.ID_student = m.ID_student
WHERE p_d.ID_detail = 'parent_id_variable'

关于第一个问题,使用相同的原理,您需要在消息学生和学校之间使用内部连接(如果您想要学校的名称而不仅仅是 ID)并在 where 条件下应用您想要的参数。 例如,按学校 => message.ID_school,按学校和按年份 => message.ID_school 和 students.year。

【讨论】:

邮件不是直接发给单个学生而是发给一组或一年级的学生怎么办? 是的,这就是问题所在,将消息发送给组或年份的部分 使用 groupID 或在您的情况下使用 classID 应该可以解决该问题。另一种方法是修改/设计现有 ID 以保存其年份和班级信息的详细信息。

以上是关于我找不到在 MySQL 上的学校数据库中实现消息的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在本机摄像机中实现HDR设置?

iOS 14 小部件中的动画

如何在 smack 中实现消息确认

如何在ARM64中实现系统调用?

如何在batmanjs中实现导航菜单

如何在 Flutter 的消息中实现用户提及?