类似微信朋友圈或者qq动态的设计,我这边需求是陌生人之间也可以观看动态,有点类似陌陌动态,根据思路主要分为三个表,动态信息表,评论表以及点赞表。如有不足,请各位大佬指点。
动态信息表
create table DynamicCircle ( DCID varchar(32) not null, UID varchar(32), Content varchar(1024), FileType int comment '1-无 2-图片 3-视频', Longitude decimal(10,7), Latitude decimal(10,7), Address varchar(256), LikeCount bigint, CreateTime datetime default CURRENT_TIMESTAMP, IsDel int default 0, primary key (DCID) );
其中要注意 动态内容Content字符集utf8mb4,可以插入表情,FileType使用显示否是相关文件,可以另外创建一个文件表与之关联,LikeCount为点赞数量,主要是为了方便查询统计,不用每次都去查询点赞表, IsDel为删除标识,防止强制删除,做弱删除处理,至于文件相关表,设计比较简单,不在说明
评论表
create table CircleComment ( CCtID varchar(32) not null, DCID varchar(32), UID varchar(32), ToUID varchar(32), Content varchar(256), LikeCount bigint, CreateTime datetime, IsDel int default 0, primary key (CCtID) );
其中要注意 评论内容Content字符集utf8mb4,UID和ToUID分别表示评论用户和被评论用户。
点赞表
create table CircleLIke ( CLID varchar(32) not null, UID varchar(32), SourceID varchar(32), LikeType int comment '1-评论 2-动态信息', State int comment '0-已取消赞 1-有效赞', CreateTime datetime default CURRENT_TIMESTAMP, primary key (CLID) );
这里说明下 SourceID标识来源标识,LikeType为1时表示评论表主键,LikeType为2时表示动态信息主键。