- configs:配置文件。
- docs:文档集合。
- global:全局变量。
- internal:内部模块。
- dao:数据访问层(Database Access Object),所有与数据相关的操作都会在 dao 层进行,例如 MySQL、ElasticSearch 等。
- middleware:HTTP 中间件。
- model:模型层,用于存放 model 对象。
- routers:路由相关逻辑处理。
- service:项目核心业务逻辑。
- pkg:项目相关的模块包。
- storage:项目生成的临时文件。
- scripts:各类构建,安装,分析等操作的脚本。
- third_party:第三方的资源工具,例如 Swagger UI。
CREATE DATABASE
IF
NOT EXISTS blog_service DEFAULT CHARACTER
SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
通过上述 SQL 语句,数据库将会创建本项目的数据库 blog_service,并设置它的默认编码为 utf8mb4。另外在每个数据表中,都包含同样的公共字段,如下:
`created_on` int(10) unsigned DEFAULT '0' COMMENT '创建时间',
`created_by` varchar(100) DEFAULT '' COMMENT '创建人',
`modified_on` int(10) unsigned DEFAULT '0' COMMENT '修改时间',
`modified_by` varchar(100) DEFAULT '' COMMENT '修改人',
`deleted_on` int(10) unsigned DEFAULT '0' COMMENT '删除时间',
`is_del` tinyint(3) unsigned DEFAULT '0' COMMENT '是否删除 0 为未删除、1 为已删除',
在创建数据表时,注意将其同时包含写入就可以了。
CREATE TABLE `blog_tag` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT '' COMMENT '标签名称',
# 此处请写入公共字段
`state` tinyint(3) unsigned DEFAULT '1' COMMENT '状态 0 为禁用、1 为启用',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='标签管理';
创建标签表,表字段主要为标签的名称、状态以及公共字段。
CREATE TABLE `blog_article` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(100) DEFAULT '' COMMENT '文章标题',
`desc` varchar(255) DEFAULT '' COMMENT '文章简述',
`cover_image_url` varchar(255) DEFAULT '' COMMENT '封面图片地址',
`content` longtext COMMENT '文章内容',
# 此处请写入公共字段
`state` tinyint(3) unsigned DEFAULT '1' COMMENT '状态 0 为禁用、1 为启用',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章管理';
创建文章表,表字段主要为文章的标题、封面图、内容概述以及公共字段。
CREATE TABLE `blog_article_tag` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(11) NOT NULL COMMENT '文章 ID',
`tag_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '标签 ID',
# 此处请写入公共字段
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文章标签关联';
创建文章标签关联表,这个表主要用于记录文章和标签之间的 1:N 的关联关系。