zoukankan      html  css  js  c++  java
  • 【平台开发】— 4.mysql建库建表

    本想着把前端脚手架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;
    

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

  • 相关阅读:
    Arpa's weak amphitheater and Mehrdad's valuable Hoses
    Arpa's loud Owf and Mehrdad's evil plan
    穷游中国在统题
    2016 ACM Amman Collegiate Programming Contest D Rectangles
    区间求和
    Redis 连接池的问题
    eBay 使用ReviseInventoryStatusCall调整库存和价格
    eBay Notification介绍
    Quartz.Net 配置模板范例
    Quartz.net misfire实践
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/13295690.html
Copyright © 2011-2022 走看看