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,接下来我们就来说一下如何快速的构建一个开发环境和测试环境 二.步 ...
随机推荐
- CentOS7 控制台上安装运行 vmware workstation 备忘录
目标平台 CentOS 7.5.1804 无桌面,要跑个 Ubuntu.vmx 1.安装依赖库 yum -y install perl gcc kernel-devel libX11 libXiner ...
- 【USB3.0协议学习】Topic3·三种Reset Events分析
USB3.0中的三种Reset Events 1. PowerOn Reset PowerOn Reset被用来代指上电复位,当一个device接入到root hub或者外置hub的时候,该devic ...
- window使用VNC远程ubuntu16.04
首先保证在同一局域网下 一.设置Ubuntu 16.04 允许进行远程控制 首先在ubuntu下找到下图图标 将[允许其他人查看您的桌面]这一项勾上,然后在安全那项,勾选[要求远程用户输入此密码],并 ...
- 在实例化对象的时候new关键字具体做了哪些操作?
a 创建了一个空对象 {}b 通过原型链把空对象和构造函数连接起来__proto__ = prototype c 构造函数的this指向新对象,并执行函数体 d 判断构造函数的返回值,返回对象就使用该 ...
- Vue3 的watch 监视属性
1. 监听单个 watch(变量,(新值,老值)=>{}) 2. 监听多个 watch([变量1,变量2],(新值,老值)=>{}) 3. 监听对象 watch(()=>对象,(新值 ...
- 干活总结 | SQL 语法速成手册
本文针对关系型数据库的一般语法.限于篇幅,本文侧重说明用法,不会展开讲解特性.原理.本文内容包括基本概念.增删改查.子查询.连接和组合.函数.排序和分组.数据定义.事务处理.权限管理等等. 一.基本概 ...
- 再见,Centos!
近日,CentOS官方宣布CentOS系列稳定版Linux系统将停止维护,取而代之的是测试版的CentOS Stream,这也意味着CentOS将会退出历史舞台,因此引发了CentOS用户的强烈不满. ...
- C/C++ volatile restrict 用法
volatile和restrict是C和C++中的两个关键字,都用于指示编译器优化. volatile volatile的本意是"易变的",用法和const一样: volatile ...
- 如何在HarmonyOS Next中编译React-Native包
一.创作背景 鸿蒙既出,万众瞩目.作为国内操作系统自力更生的代表,它承载着十四亿中国人民的强烈期望,系国家安全和国运于一身.就算抛开爱国情怀不谈,作为一名软件开发人员,偌大的就业市场,海量的翻身机会就 ...
- 初识cuda一文通
cuda学习博客 本文为本人cuda学习过程中的记录和理解,多参考@谭升等大佬前辈的博客,以及NVIDIA官方文档.如有错误烦请指正,如有侵权请联系删除. 0. 并行计算与计算机架构 计算机架构是并行 ...