确定软件架构

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:项目设计的更多相关文章

  1. 转:Java项目开发规范参考

    Java项目开发规范参考 - KevinLee的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/u011383131/article/details/51227860 ...

  2. IDEA 学习笔记之 Java项目开发深入学习(2)

    Java项目开发深入学习(2): 查找变量被用到的地方 编译当前文件 增加变量watch 注意:我使用了keymap (eclipse模板),所以很多快捷键和eclipse一样. F5单步调试进入函数 ...

  3. IDEA 学习笔记之 Java项目开发深入学习(1)

    Java项目开发深入学习(1): 定义编译输出路径: 继承以上工程配置 重新定义新的项目编译路径 添加source目录:点击添加,再点击移除: 编译项目: 常用快捷键总结: Ctrl+Space 代码 ...

  4. IDEA 学习笔记之 Java项目开发

    Java项目开发: 新建模块: 添加JDK: 导入本地Jars: 从远程Maven仓库下载: 创建package: 新建类/接口/枚举等: 字体太小,改字体: Duplicate Scheme 修改编 ...

  5. 《Maven在Java项目开发中的应用》论文笔记(十七)

    标题:Maven在Java项目开发中的应用 一.基本信息 时间:2019 来源:山西农业大学 关键词:Maven:Java Web:仓库:开发人员:极限编程; 二.研究内容 1.Maven 基本原理概 ...

  6. 收藏基本Java项目开发的书

    一.Java项目开发全程实录 第1章 进销存管理系统(Swing+SQL Server2000实现) 第2章企业内部通信系统(Swing+JavaDB实现) 第3章 企业人事管理系统( Swing+H ...

  7. Java项目开发中实现分页的三种方式一篇包会

    前言   Java项目开发中经常要用到分页功能,现在普遍使用SpringBoot进行快速开发,而数据层主要整合SpringDataJPA和MyBatis两种框架,这两种框架都提供了相应的分页工具,使用 ...

  8. Java项目开发

    项目开发整体构建: MVC+DAO设计模式 用面向对象的方式理解和使用数据库,一个数据库对应一个java项目 数据库--项目 表--类 字段--属性 表中的一条数据--类的一个对象 M:模型层 Jav ...

  9. 《JAVA 从入门到精通》 - 正式走向JAVA项目开发的路

    以前很多时候会开玩笑,说什么,三天学会PHP,七天精通Nodejs,xx天学会xx ... 一般来说,这样子说的多半都带有一点讽刺的意味,我也基本上从不相信什么快速入门.我以前在学校的时候自觉过很多门 ...

  10. 利用Docker搭建java项目开发环境

    一.需求 一台 Ubuntu 16.0.4 LTS ,安装了Docker服务,Rancher服务,也制作了Tomcat相关的image,接下来我们就来说一下如何快速的构建一个开发环境和测试环境 二.步 ...

随机推荐

  1. CentOS 7 下通过 Cython 编写 python 扩展

    1. 安装 python 和 python-devel(没有后者,install 的时候会报错 "Scanners.c:21:20: fatal error: Python.h: No su ...

  2. dotnet 委托delegate的使用 定义和使用

    void Main() { // 委托 - 初级和高级的分水岭 // 1. 委托的初体验 // 委托是一个引用类型,其实是一个类型,保存方法的指针(地址) (变量名字都是地址 都是指针) // 是一个 ...

  3. Ex-BSGS

    给定\(a,p,b\),求\(a^x\equiv b \pmod p\)的最小自然数\(x\) . 保证\(\sum \sqrt p \leq5\times 10^6\) 当\(a=p=b=0\)时, ...

  4. 通过maven动态配置spring boot配置文件

    一.引入maven插件的jar包 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifact ...

  5. 【Kernel】基于 QEMU 的 Linux 内核编译和安装

    目录 安装虚拟机系统 共享目录 编译内核 卸载内核 参考资料 本文主要记录个人做存储系统研究时,在 QEMU 环境下编译和安装 Linux 内核的过程 安装虚拟机系统 之前在 利用 RocksDB + ...

  6. 将NC栅格表示时间维度的数据提取出来的方法

      本文介绍基于Python语言,逐一读取大量.nc格式的多时相栅格文件,导出其中所具有的全部时间信息的方法.   .nc是NetCDF(Network Common Data Form)文件的扩展名 ...

  7. Machine Learning week_2 Multivariate Prameters Regression

    目录 1 Multivariate Prameters Regression 1.1 Reading Multiple Features 1.2 Gradient Descent For Multip ...

  8. 深度解读RDS for MySQL 审计日志功能和原理

    本文分享自华为云社区<[华为云MySQL技术专栏]RDS for MySQL 审计日志功能介绍>,作者:GaussDB数据库. 1. 背景 在生产环境中,当数据库出现故障或问题时,运维人员 ...

  9. python统计人的视角(1)——python基础

    3D画图 import matplotlib import matplotlib.pyplot as plt import numpy as np fig=plt.figure() ax=fig.ad ...

  10. WebUI自动化框架-playwright

    (持续更新) 一.环境准备 安装playwright:playwright是基于python3.7开发的第三方包,所以需要使用的python版本是3.7及其以上的 pip install playwr ...