类似微信朋友圈或者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时表示动态信息主键。