功能其实很简单,就是后台往指定用户推送一条通知,可以是一个人,也可以是一群人,推送的通知存在msql,改怎么存呢?
现在俩种方法:
每个用户存一条
id content user_id time
1 'xxxx' 1 123
2 'xxxx' 2 123
每个通知存一条,用户逗号隔开
id content user_ids time
1 'xxxx' 1,2 123
如何设计会更好点?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
消息单独一个表,然后建一个消息和用户的关系表,这种更符合范式,推荐.
以
user_ids
为条件进行查询时,要用MySQL函数FIND_IN_SET
或者MATCH AGAINST
全文检索,虽然不需要进行表连接,但查询的性能并不佳.用户表可以有个通知中心的字段
通知再单独建表
这样做是有一定冗余,但是有一点,如果没有这种冗余的话,要获取一个用户所有通知带来的开销是巨大的
第一种方法,但是把通知内容另外再单独存一个表。