在MySQL中存储用户通知的最佳方法是什么?

nik*_*mav 1 php mysql

我正在php/mysql应用程序中构建一个noticeboard模块.这个想法是管理员可以将通知发布给单个用户,用户组(按角色),可能是用户/组/角色的组合,系统中的每个人.

我最初的想法是使用以下架构来解决我发送给单个用户或单个用户角色的问题:

notices
----------------
notice_id
notice_date
notice_title
notice_text
notice_recipients  <-- linked to user_role_id (from user_roles table)
Run Code Online (Sandbox Code Playgroud)

我不确定如何在数据库中没有重复行的情况下记录2个组和/或50个单独的收件人.是否可以将所有user_role_id存储在一个notice_recipients字段中,然后以某种方式读取该字段的内容以显示在每个单独的用户布告栏中?

Eug*_*eck 5

你需要一个连接表:

notices
----------------
notice_id
notice_date
notice_title
notice_text
Run Code Online (Sandbox Code Playgroud)

notices_users
----------------
notice_id
user_id
Run Code Online (Sandbox Code Playgroud)

创建通知时,请将其写入notces表.然后对于应该接收它的每个用户,在notices_users中添加一行.如果您已显示它,请从notices_users中删除它或添加状态字段.