2024年1月Java项目开发指南2:项目设计
确定软件架构
1.前端用什么技术,什么框架,什么版本
2.后端用什么技术,什么框架,什么版本
3.用些什么软件,软件版本?
比如:
前端:vue3 + Element-Plus + Axios
后端:Java17 Springboot MyBatis-plus Maven3
数据库:MySQL5.5
后端开发工具:IDEA2023.2.2
前端开发工具:Webstorm2023.2.2
接口管理工具:Apifox
数据库管理工具:Navcat
文档编写格式:Markdown
软件功能设计
明确项目功能
1.这个项目,谁来用?管理员?用户?管理员下面有子管理员吗?用户需要可以登录注册吗?
2.这个项目,有什么功能?管理数据的吗?展示数据的吗?
举个例子,《高校后勤保修系统数据库设计》
要实现的功能:
1.管理员登录,登录后可以进行用户管理,设备管理,保修申请审批与回复……
2.用户注册,登录。用户登录后,可以进行设备报修,报修情况查询,意见反馈……
数据库设计
第一步
根据 要实现的功能 明确有哪些表
举个例子,《高校后勤保修系统数据库设计》
比如说涉及到用户的,是不是应该有一个用户信息表,设计设备管理的,是不是应该有一个设备信息表
第二步
明确每个表有什么字段
比如用户信息表,要有主键id,账号(account)密码(password)用来登录,要有昵称(name),要绑定邮箱(email),要记录注册时间(regtime),要记录这个账号的权限等级(vip),要记录这个账号的状态(status)正常还是被禁用
第三步
明确字段的数据类型,比如有的表有性别gender字段(性别用sex是不礼貌的),我们不一定就是在这个字段填写“男”或者“女”,我们可能会使用1表示男,0表示女,那个这个字段类型,只需要是tinyint类型
比如密码password字段,我们加密后的长度一定是32位,那么就可以设计为char(32)
第四步
编写创表SQL语句,创建数据表。
大功告成。
然后呢去玩一会,喝杯茶,再回头检查一下设计有无缺陷,尤其是涉及多个表的时候,要关注表和表之间的联系。
尽可能的避免设计出现缺陷,后面开发到一半,发些设计漏了一个字段,然后又来改数据表结构,改完之后又要去改代码,甚至会导致一些代码不得不重写,就很麻烦。(亲身体会,陷入一种:不改吧缺字段,不好实现功能,改吧……很多写好的代码都会受到影响,进退两难)
最终文件
1.设计过程记录文档(Markdown格式)
2.Sql文件(可以在数据库中运行你的建表语句后,再导出为sql文件)
关于数据类型选择
检查字段命名合不合适 需不需要修改 检查是否有冗余字段,检查是否缺少字段
没问题了再去设计字段对应数据类型
要考虑 节省空间 方便 效率高 等等 这个就是看你对MYSQL的理解了
管他三七二十一 直接varchar(255) 这是不严谨的。
参考文章:Mysql小细节:varchar与char在性能上的特点-腾讯云开发者社区-腾讯云 (tencent.com)
什么时候用char 什么时候用varchar,varchar或者char应该设置多少合适?都要考虑
多关注,多百度数据类型性能问题和一般什么时候用哪个,多看看相关的技术博客
推荐阅读
【推荐阅读】为什么不推荐使用外键 https://mp.weixin.qq.com/s/4Q7FzxgkqYCb5fGOARhvDg
【推荐阅读】MySQL decimal类型 - MySQL教程 (yiibai.com)
注意事项
创建数据库的时候,一定要记得设置编码格式 utf8mb4

Navcat导出数据库:
右击数据库,选择转储SQL文件
结构数据 还是 仅结构,这个看需求。

2024年1月Java项目开发指南2:项目设计的更多相关文章
- 转:Java项目开发规范参考
Java项目开发规范参考 - KevinLee的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/u011383131/article/details/51227860 ...
- IDEA 学习笔记之 Java项目开发深入学习(2)
Java项目开发深入学习(2): 查找变量被用到的地方 编译当前文件 增加变量watch 注意:我使用了keymap (eclipse模板),所以很多快捷键和eclipse一样. F5单步调试进入函数 ...
- IDEA 学习笔记之 Java项目开发深入学习(1)
Java项目开发深入学习(1): 定义编译输出路径: 继承以上工程配置 重新定义新的项目编译路径 添加source目录:点击添加,再点击移除: 编译项目: 常用快捷键总结: Ctrl+Space 代码 ...
- IDEA 学习笔记之 Java项目开发
Java项目开发: 新建模块: 添加JDK: 导入本地Jars: 从远程Maven仓库下载: 创建package: 新建类/接口/枚举等: 字体太小,改字体: Duplicate Scheme 修改编 ...
- 《Maven在Java项目开发中的应用》论文笔记(十七)
标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...
- 收藏基本Java项目开发的书
一.Java项目开发全程实录 第1章 进销存管理系统(Swing+SQL Server2000实现) 第2章企业内部通信系统(Swing+JavaDB实现) 第3章 企业人事管理系统( Swing+H ...
- Java项目开发中实现分页的三种方式一篇包会
前言 Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用 ...
- Java项目开发
项目开发整体构建: MVC+DAO设计模式 用面向对象的方式理解和使用数据库,一个数据库对应一个java项目 数据库--项目 表--类 字段--属性 表中的一条数据--类的一个对象 M:模型层 Jav ...
- 《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路
以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx ... 一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门.我以前在学校的时候自觉过很多门 ...
- 利用Docker搭建java项目开发环境
一.需求 一台 Ubuntu 16.0.4 LTS ,安装了Docker服务,Rancher服务,也制作了Tomcat相关的image,接下来我们就来说一下如何快速的构建一个开发环境和测试环境 二.步 ...
随机推荐
- CentOS 7 下通过 Cython 编写 python 扩展
1. 安装 python 和 python-devel(没有后者,install 的时候会报错 "Scanners.c:21:20: fatal error: Python.h: No su ...
- dotnet 委托delegate的使用 定义和使用
void Main() { // 委托 - 初级和高级的分水岭 // 1. 委托的初体验 // 委托是一个引用类型,其实是一个类型,保存方法的指针(地址) (变量名字都是地址 都是指针) // 是一个 ...
- Ex-BSGS
给定\(a,p,b\),求\(a^x\equiv b \pmod p\)的最小自然数\(x\) . 保证\(\sum \sqrt p \leq5\times 10^6\) 当\(a=p=b=0\)时, ...
- 通过maven动态配置spring boot配置文件
一.引入maven插件的jar包 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifact ...
- 【Kernel】基于 QEMU 的 Linux 内核编译和安装
目录 安装虚拟机系统 共享目录 编译内核 卸载内核 参考资料 本文主要记录个人做存储系统研究时,在 QEMU 环境下编译和安装 Linux 内核的过程 安装虚拟机系统 之前在 利用 RocksDB + ...
- 将NC栅格表示时间维度的数据提取出来的方法
本文介绍基于Python语言,逐一读取大量.nc格式的多时相栅格文件,导出其中所具有的全部时间信息的方法. .nc是NetCDF(Network Common Data Form)文件的扩展名 ...
- Machine Learning week_2 Multivariate Prameters Regression
目录 1 Multivariate Prameters Regression 1.1 Reading Multiple Features 1.2 Gradient Descent For Multip ...
- 深度解读RDS for MySQL 审计日志功能和原理
本文分享自华为云社区<[华为云MySQL技术专栏]RDS for MySQL 审计日志功能介绍>,作者:GaussDB数据库. 1. 背景 在生产环境中,当数据库出现故障或问题时,运维人员 ...
- python统计人的视角(1)——python基础
3D画图 import matplotlib import matplotlib.pyplot as plt import numpy as np fig=plt.figure() ax=fig.ad ...
- WebUI自动化框架-playwright
(持续更新) 一.环境准备 安装playwright:playwright是基于python3.7开发的第三方包,所以需要使用的python版本是3.7及其以上的 pip install playwr ...