簡單的新鮮事系統設計

太粗略了,以後慢慢完善

 

 

MQ(P):publish-》feed表生成記錄 -》 userTimeLine插入數據-》將feed信息放入MQ

 

MQ(C):啓動線程-》在循環中執行消費-》找出所有關注該人的的粉絲-》 輪尋插入home_timeline表中

 

某個用戶登錄後,查詢home_timeline和feed關聯表,即可獲得自己的所有新鮮事

 

表設計:

用戶自己發佈的feed timeline表:user_timeline

CREATE table user_timeline(
   user_id int not null default 0,
   feed_id int not null default 0,
   feed_type tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`user_id`, `feed_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

CREATE table home_timeline(
   id int not null AUTO_INCREMENT,
   user_id int not null default 0 COMMENT 'feed流接收者',
   feed_id int not null default 0 COMMENT 'feed 的id',
   feed_type tinyint NOT NULL DEFAULT 0 COMMENT 'feed的類型',
   PRIMARY KEY (`id`),
   INDEX `idx_uid_feed` (`user_id`, `feed_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

新鮮事:feed
 CREATE TABLE `feed` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(500) NOT NULL default '' COMMENT '如果是模板的形式則爲json',
  `feed_time` timestamp not null COMMENT 'feed發佈時間',
  `reply_num` int(11) NOT NULL DEFAULT 0 COMMENT '回覆數',
  `repost_num` int(11) NOT NULL DEFAULT 0 COMMENT '轉發數',
  `source` int(11) NOT NULL DEFAULT 0 COMMENT '轉發源',       
  `user_id` int(11) NOT NULL default 0 COMMENT '發佈人',
  `feed_type` tinyint NOT NULL DEFAULT 0 COMMENT 'feed類型',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章