mysql4创建数据库_【平台开发】— 4.mysql建库建表

本文详细介绍如何安装MySQL数据库,并创建适用于前后端交互学习的数据库表结构,包括用户表、项目表、接口表及规则表。

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

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

一、mysql

1.安装

数据库我在本地装的是mysql-8.0.21-winx64,下载地址:Download MySQL Community Server​dev.mysql.com

怎么安装就不表了,网上都有。考虑到懒人童鞋,教程我也放这了:MySQL 安装 | 菜鸟教程​www.runoob.com58aa3dbf555280bd6073c725374f9222.png

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

Authentication plugin 'caching_sha2_password' cannot be loaded。

如果你也遇到了,去重置密码然后刷新下权限就好了,解决办法也附上:Navicat Premium 12连接MySQL数据库出现Authentication plugin caching_sha2_password cannot be loaded的解决方案_u011182575的博客-优快云博客_authentication plugin​blog.youkuaiyun.combbae2af1cad8073902ab5a7ecb14d2f8.png

二、建库

两行命令的事情:

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,

description varchar(255) DEFAULT NULL;

createUser varchar(255) DEFAULT NULL,

createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

PRIMARY KEY (id),

#这里就是外键约束了,project表中的uid指向user表里的idCONSTRAINT 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;

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

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值