首页 > 编程语言 >2024年1月Java项目开发指南2:项目设计

2024年1月Java项目开发指南2:项目设计

时间:2024-01-10 15:11:21浏览次数:49  
标签:char varchar Java 登录 项目 数据库 数据类型 2024 设计

确定软件架构

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

image

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

标签:char,varchar,Java,登录,项目,数据库,数据类型,2024,设计
From: https://www.cnblogs.com/mllt/p/17956516/project202401-2

相关文章

  • QuarkXPress 2024让每一页都成为艺术品
    QuarkXPress2024是一款功能强大的印刷和出版软件,广泛应用于印刷出版行业。作为Quark软件公司旗下的核心产品,QuarkXPress2024在继承了之前版本的优秀性能和功能的基础上,进一步提升了用户体验和工作效率。点击获取QuarkXPress2024首先,QuarkXPress2024提供了全新的用户界面,使......
  • 【JavaScript】JavaScript定义、引入方式、基础语法、函数、对象、继承
    定义JavaScript是一门跨平台、面向对象的脚本语言用来控制网页行为的,可以使网页交互引入方式内部脚本外部脚本JS基础语法书写语法输出语句变量变量作用域数据类型运算符=====??.?...展开运算符(1)打散数组传递给多个参数(2)复制数组或......
  • 关于REACT2024挑战赛
    关于REACT2024首先,挑战赛官网如下:https://sites.google.com/cam.ac.uk/react2024/home这个挑战赛的任务是:建立一个机器学习模型,在双人交互的背景下,通过说话者的视频、音频、表情等数据,生成听者的面部反应并要保证反应的合理性(FRDistandFRCorr)、多样性(FRVar,FRDiv,andFRD......
  • Java SMTP发送邮件有什么好处?实现方式?
    在当今数字化时代,电子邮件成为人们日常生活和工作中不可或缺的沟通工具。为了在Java应用程序中实现邮件发送功能,使用SMTP(SimpleMailTransferProtocol)是一种常见的选择。本文将探讨在Java中使用SMTP发送邮件的好处,并介绍其实现方式。1.简介:JavaSMTP发送邮件的背景在开始深入讨......
  • 2024-01-10(电动车充电器&铁板烧)
    一、电动车充电器问题:(问题):充电器上电时炸了,新买了一个。坏的那家1年内免费换新还需等财务统一核销。(反思):充电器这种东西不能放在户外日晒雨淋,晚上把小电动清理干净。 二、鹿仙子铁板烧问题:(问题):500W/220V铁板上融锡膏好像要一分钟。这一分钟之前元器件都不会被烧坏吗?(解......
  • Java Spring Boot Controller、Service、DAO实践
    如果你用过SpringMVC,那就对Controller、Service、DAO三者的概念一定不陌生,我们通过Controller来接收请求和返回响应,具体的业务处理则放在Service层处理,而DAO则实现具体与数据库等持久层的操作。今天从分层的角度来学习下在SpringBoot中的简单应用,业务场景也很简单,就......
  • 使用nestjs和react快速搭建项目架子
    首先搭建前后端的项目架子搭建nestjs架子npx@nestjs/clinew项目名使用vite搭建一个react+ts的架子,vite地址:https://cn.vitejs.dev/guide/。搭建好后cd到项目中,然后安装依赖,尝试启动。npmcreatevite@latest项目名----templatereact-ts数据库使用postgresql,使用do......
  • 复旦大学2023--2024学年第一学期高等代数I期末考试情况分析
    一、期末考试成绩班级前十名的同学褚乐一(91)、陈天乐(91)、文俊(90)、林加耀(90)、覃昊东(89)、高宇飞(88)、周家宏(85)、邓海斌(85)、陈康(85)、牛博彬(85)二、总评成绩计算方法平时成绩根据交作业的次数决定。本学期提交作业共13次,10次100分,少1次扣10分。总评成绩=平时成绩......
  • 【OpenVINO】 使用 OpenVINO CSharp API 部署 PaddleOCR 项目介绍
    前言: 在之前的项目中,我们已经使用OpenVINOTMCSharpAPI部署PaddleOCR全系列模型,但随着PaddleOCRv4版本发布以及OpenVINOCSharpAPI版本迭代,上一版本的项目已经不再适用。因此在推出的最新项目中,已经完成了对PaddleOCRv4的匹配,并且采用了最新版本的OpenVINOTMCSha......
  • Codeforces [Hello 2024]
    CodeforcesHello2024主打一个昏了头A.WalletExchange#include<bits/stdc++.h>#defineendl'\n'//#defineintlonglongusingnamespacestd;constintN=2e5+10;inta,b;voidsolve(){ cin>>a>>b; if((a+b)&1)cout<<......