我找不到在 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 上的学校数据库中实现消息的方法的主要内容,如果未能解决你的问题,请参考以下文章