本想着把前端脚手架run起来了,然后就可以借着登录来捋一下前后端交互的过程。但是后端导入JPA的时候就发现了,还没有数据库。

既然是本着学习的目的,那咱也不想只在后端写死返回的数据,要做就做全套。

一、mysql

1.安装

数据库我在本地装的是mysql-8.0.21-winx64,下载地址:

这是mysql下载地址

怎么安装就不表了,网上都有。考虑到懒人童鞋,教程我也放这了:

这是安装教程地址

但是当我在本地用Navicat连接数据库时,发现有报错:

Authentication plugin 'caching_sha2_password' cannot be loaded

如果你也遇到了,去重置密码然后刷新下权限就好了,解决办法也附上:

报错解决

二、建库

两行命令的事情:

DROP DATABASE IF EXISTS my_platform;
CREATE DATABASE my_platform DEFAULT CHARACTER SET utf8;

三、建表

建表才是重头戏。

从目前我的需求来看,需要有4张表:用户表、项目表、mock接口表、以及各mock接口下的配置表。

那平常测试时候经常听到的“一对多”、“多对一”这时候要怎么分析呢?

1.表关系分析

因为功能实在是很简单,所以也不用怎么分析(行就行,不行就先这样,哈哈):

  • 一个用户可以有多个项目
  • 一个项目可以有多个mock接口
  • 一个mock接口又可以有多个自定义返回的配置

2.建表

因为表和表之间有依赖关系,所以在建表过程中,要设置外键约束。

通常的话,先建立被外键指向的表,比如用户表,然后是项目表、mock接口表、配置表。

用户表
#用户表
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) DEFAULT NULL,
password varchar(255) DEFAULT NULL,
createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
项目表

这里就有外键约束了。

#项目表
CREATE TABLE project (
id int(11) NOT NULL AUTO_INCREMENT,
uid int(11) DEFAULT NULL,
projectName varchar(255) DEFAULT NULL,
createUser varchar(255) DEFAULT NULL,
createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
#这里就是外键约束了,project表中的uid指向user表里的id
CONSTRAINT fk_project_user FOREIGN KEY (uid) REFERENCES user (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
接口表

同样有外键,指向project表。

#接口表
CREATE TABLE interface (
id int(11) NOT NULL AUTO_INCREMENT,
pid int(11) DEFAULT NULL,
interfaceName varchar(255) DEFAULT NULL,
request_method varchar(50) DEFAULT NULL,
request_path varchar(255) DEFAULT NULL,
interface_descibe varchar(255) DEFAULT NULL,
createUser varchar(255) DEFAULT NULL,
createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
#外键约束
CONSTRAINT fk_interface_project FOREIGN KEY (pid) REFERENCES project (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
规则表

我的需求是:一个接口可以配置多种规则,然后匹配到对应规则,就返回对应的响应体。

所以规则表要指向接口表。

#规则表
CREATE TABLE rule (
id int(11) NOT NULL AUTO_INCREMENT,
rule_name varchar(255) DEFAULT NULL,
interface_id int(11) DEFAULT NULL,
filter_params TEXT DEFAULT NULL,
filter_body TEXT DEFAULT NULL,
response_code int(11) DEFAULT NULL,
response_body TEXT DEFAULT NULL,
createUser varchar(255) DEFAULT NULL,
createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
#外键约束
CONSTRAINT fk_rule_interface FOREIGN KEY (interface_id) REFERENCES interface (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

表建完了,但是我相信在后面实现的过程中肯定会遇到一些问题,比如字段设计不合理,字段类型有问题等等,这个就届时再说啦。

最新文章

  1. Sniffer的完整代码,基于winpcap抓包统计吞吐量
  2. LWL-Hitokoto API(一言-纯净API)
  3. ajax动态添加的li不能绑定click事件
  4. ASP.NET Web API 上传文件
  5. Visual Studio 编译项目失败,提示找不到文件
  6. [BZOJ3504][CQOI2014]危桥(最大流)
  7. vs2012出现无法启动iis express web 服务器的错误
  8. 纯css3写的仿真图书翻页效果
  9. 7.java.lang.IllegalAccessException
  10. char*与char[]
  11. 关于IIS和.NET 4.0的问题总结(转)
  12. 浅谈postgresql的GIN索引(通用倒排索引)
  13. Linux 网络编程中的read和write函数正确的使用方式
  14. linux下boost的安装与编译
  15. 一些常用的CSS样式
  16. php实现ZIP压缩文件解压缩
  17. Effective Java --使类和成员的可访问性最小化
  18. 前后端交互json字符串
  19. mac 下配置Android sdk
  20. grep, sed 与 awk 补补课,到底怎么用!

热门文章

  1. 【NOIP2015】斗地主 题解(DFS+贪心)
  2. Linux输出缓存你知道多大吗?
  3. 在Linux系统中安装Tomcat详细教程
  4. 关于在Visual Studio 2019预览版中的用户体验和界面的变化
  5. myBatis源码解析-反射篇(4)
  6. 坚持第一天:HashMap和Hashtable的区别
  7. 【工具-代码】OSS阿里云存储服务-代码实现
  8. List 集合的操作
  9. MySQL InnoDB表空间加密
  10. 三张图理解JavaScript原型链