既然是0基础,现在来写下设计思路,因为go-zero是个微服务架构,所以,哪怕是0基础,也从两个服务模块开始写起。
我们的目标是:最小可用微服务架构最佳实践!
好了,饼画完了。
第0部分写到,主要是做一个文章编辑发布。
那就简单粗暴的分成两个服务:user服务和article服务。
完美。
来一个简简单单的表设计。
⚠️注意哈,token是放redis存储的,其余的放mysql。
如果有疑问,点此一键搜索token为什么要放redis
从上图可以看的出来咱们这个业务设计的也是相当简单哈,用户没设置登录名,就用手机号作为登录名哈,文章这一块也设计的相当简单,再就是加了一个评论的功能。pid就是父评论id,aid就是对应的文章的id。
打个响指🫰,除了token外一键生成对应的.sql文件。ok,很棒。
user表:
CREATE TABLE IF NOT EXISTS `user` (`id` varchar(128) NOT NULL DEFAULT '' COMMENT '用户ID',`name` varchar(32) NULL COMMENT '用户姓名',`phone` varchar(128) NOT NULL DEFAULT '' COMMENT '用户手机号/登录用户名',`type` tinyint(3) unsigned NOT NULL DEFAULT 0 COMMENT '用户类型: 0-普通用户、1-后台管理员',`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '用户注册时间',`status` tinyint(3) unsigned NOT NULL DEFAULT 0 COMMENT '用户状态: 0-正常、1-冻结、2-注销、3-拉黑',PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
article表:
CREATE TABLE IF NOT EXISTS `article` (`id` varchar(128) NOT NULL DEFAULT '' COMMENT '文章ID',`title` varchar(128) NULL DEFAULT '' COMMENT '文章标题',`desc` varchar(256) NULL DEFAULT '' COMMENT '文章描述',`content` TEXT NULL COMMENT '文章内容',`author` varchar(128) NULL COMMENT '文章作者',`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '文章发布时间',`assets` varchar(1024) NULL COMMENT '附件',`status` tinyint(3) unsigned NOT NULL DEFAULT 0 COMMENT '文章状态: 0-正常、1-已删除',PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
comment表:
CREATE TABLE IF NOT EXISTS `comment` (`id` varchar(128) NOT NULL DEFAULT '' COMMENT '评论ID',`pid` varchar(128) NULL DEFAULT '' COMMENT '回复的评论ID',`aid` varchar(128) NULL DEFAULT '' COMMENT '评论所属文章',`creator` varchar(128) NULL COMMENT '评论人',`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '评论发布时间',PRIMARY KEY (`id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
很好,现在表设计已经完成了,nice~