有一个消息详情表:
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL DEFAULT '-1' COMMENT '消息归属user_id,若为0表示广播消息',
`biz_id` bigint(20) NOT NULL COMMENT '发送业务方',
`title` varchar(128) NOT NULL DEFAULT '' COMMENT '标题',
`content` varchar(512) NOT NULL DEFAULT '' COMMENT '内容',
`link` varchar(256) NOT NULL DEFAULT '' COMMENT '点击跳转链接',
一个消息发送方表:
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`keep_amount` int(11) NOT NULL DEFAULT '0' COMMENT '业务方的单用户消息保留条数,0表示无限制,1表示单用户该业务方只能看到一条消息',
`show_priority` int(11) NOT NULL DEFAULT '0' COMMENT '消息在钱包首页展示优先级,值越小表示消息优先级越高,优先级相等则按照发送时间排序',
`create_time` bigint(20) NOT NULL DEFAULT '0' COMMENT '创建发送方时间',
`update_time` bigint(20) NOT NULL DEFAULT '0' COMMENT '更新发送方时间',
查询逻辑:查询指定用户的消息列表,对于有业务方消息数量限制的,取最新的前n条(keep_amount),如1号用户有十条消息,五条A业务方发送的,五条B业务方发送的,B业务方限制用户只能看到最新一条消息。于是查询结果为五条A业务方发送的消息,1条B业务方发送的消息。