通知使用mysql如何存储
高洛峰
高洛峰 2017-04-17 13:14:29
[MySQL讨论组]

功能其实很简单,就是后台往指定用户推送一条通知,可以是一个人,也可以是一群人,推送的通知存在msql,改怎么存呢?
现在俩种方法:

每个用户存一条

id content user_id time
1  'xxxx'    1       123
2  'xxxx'    2       123

每个通知存一条,用户逗号隔开

id content user_ids time
1  'xxxx'    1,2       123

如何设计会更好点?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
高洛峰
message(id,content) + message_user(message_id,user_id)

消息单独一个表,然后建一个消息和用户的关系表,这种更符合范式,推荐.

message(id,content,user_ids)

user_ids为条件进行查询时,要用MySQL函数FIND_IN_SET或者MATCH AGAINST全文检索,虽然不需要进行表连接,但查询的性能并不佳.

高洛峰

用户表可以有个通知中心的字段

user_id user_note
1        23,45

通知再单独建表

id content user_ids time
1  'xxxx'    1,2       123

这样做是有一定冗余,但是有一点,如果没有这种冗余的话,要获取一个用户所有通知带来的开销是巨大的

黄舟

第一种方法,但是把通知内容另外再单独存一个表。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号