MySQL数据库表

标签 mysql sql database

我真的需要一些帮助。我有这个项目并且对如何构建它的数据库感到困惑

我有这个一般消息。

学生有年级和部门

我需要发送不同类型的消息

  1. 发送给所有学生
  2. 发送给所有希望收到每日更新的学生
  3. 发送给属于指定年级的学生
  4. 发送给希望收到每日更新的那一年的学生
  5. 发送给属于类(class)的学生
  6. 发送给属于各个部门并希望收到每日更新的学生
  7. 发送给年级为 section 为的学生
  8. 发送给特定学生

一些功能

Resend notification to new students
Time of notification to end sending

这是我的数据库结构

message_queue

id
type
message
isWantToReceive
date_added

type 字段值为json字符串

我是这样保存的

样本值

id    type                                                                                      Message        isWantToReceive   date_added
1     a:1:{s:3:"all";a:0:{}}                                                                     Hi welcome!    0                 2009-12-2
2     a:1:{s:6:"others";a:5:{s:7:"year";a:1:{i:0;s:11:"1";}s:10:"section";a:1:{i:0;s:7:"1";}}}   Hi welcome!    0                 2009-12-2

然后我有一个 cron 作业发送器,它将查询它并根据 type 发送消息。

我的问题是查询所有已发送的通知时

获取所有发送到 year 2year 1 section 1 的通知

因为我的 type 字段是一个 json。你能帮我根据我的功能如何工作来重构我的数据库设计吗?

最佳答案

那么,除了您的 message_queue 表之外,您还应该有一个如下表:

student<br/>
id
year
section
wantsDailyUpdates

此表将允许您跟踪所有学生以及他们所在的年份和部分。以及他们是否希望收到每日更新。

关于MySQL数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21746225/

相关文章:

c# - MySQL "network-related or instance-specific error occurred while establishing a connection to SQL Server"

sql - 每小时值总和

sql - 我的查询第二次运行得更快,我该如何停止?

java - JPA 查找表值

mysql - 如何让 node.js 和 mysql 协同工作?

php - 从 MySQL 链接表 SELECT 查询创建 PHP 多维关联数组

mysql - 递归表可为空的parent_id

mysql - 如何在 SQL 中将 2 列合并为 1 列 TO 输出

c# - 为了保护要由多个客户端访问的数据库,使用 Web 服务作为代理是不是有点矫枉过正?

mysql - 使用什么才能在 Mysql 中拥有完整的合并表