1
faceair 2014-03-29 19:17:51 +08:00
消息通知没必要一并清除吧,倒是可以再在末尾加一个删除消息
|
3
davansy 2014-03-29 20:13:05 +08:00 1
消息提醒都放一个表里面,拿一个字段来区分不同的消息类型就可以了。这样的好处是易扩展,查询一个用户的未读消息不用查询多张表,查一张就可以了。如果用户量比较大,像消息系统这样读写比较频繁的还是放redis 里面。
|
4
vvniu OP @davansy 基于我做的消息各不相同,最后还是决定用model类继承来做,基类就一个time字段,但是现在又有了在模版里读不到数据的问题。。。
|
5
picasso250 2014-03-30 06:08:07 +08:00
mysql union 可以合并表查询。
but I could not see any necessary to put messages in different tables. |
6
siteshen 2014-03-31 09:45:19 +08:00
1. 用一张表,notification(from_user_id, to_user_id, type, object_type, object_id, sent_at, read_at, params),其中type标识类别(follow, comment, reply etc.),object_type和object_id唯一标识了和这条消息相关联的对象,params-JSON字段暂保留吧,指不定某些奇葩的通知模板中要用这个;
2. 删除文章(article_id)之后,执行: delete * from notification where content_type = 'article' and object_id = {article_id}; 3. 至于消息数,select count(*) form notification where read_at is null(折叠我吧)。 |