【平台开发】— 4.mysql建库建表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【平台开发】— 4.mysql建库建表

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


1268169-20200713205354922-1777313382.gif


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


一、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,
        description 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,
  requestMethod varchar(50) DEFAULT NULL,
  requestPath varchar(255) DEFAULT NULL,
  interfaceDescribe 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,
  ruleName varchar(255) DEFAULT NULL,
  mockInterfaceId int(11) DEFAULT NULL,
  filterParams TEXT DEFAULT NULL,
  filterBody TEXT DEFAULT NULL,
  responseCode int(11) DEFAULT NULL,
  responseBody TEXT DEFAULT NULL,
  createUser varchar(255) DEFAULT NULL,
  createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  CONSTRAINT fk_rule_interface FOREIGN KEY (mockInterfaceId) REFERENCES interface (id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;


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

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
SQL 监控 关系型数据库
MySQL 延迟从库介绍
本文介绍了MySQL中的延迟从库功能,详细解释了其工作原理及配置方法。延迟从库允许从库在主库执行完数据变更后延迟一段时间再同步,主要用于快速恢复误操作的数据。此外,它还可用于备份、离线查询及数据合规性需求。通过合理配置,可显著提升数据库系统的稳定性和可靠性。
176 4
|
3月前
|
SQL 关系型数据库 MySQL
MySQL操作利器——mysql-connector-python库详解
MySQL操作利器——mysql-connector-python库详解
905 0
|
21天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
1月前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
73 5
|
1月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
1月前
|
关系型数据库 MySQL
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
mysql 5.7.x版本查看某张表、库的大小 思路方案说明
44 1
|
2月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
2月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
45 2
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。