数据库表设计-java实体设计

本文为自己开发过程中的总结,仅供参考

===============数据库表设计===============

===命名相关===

表名统一添加前缀"t_", 后面时可以参考目录结构的形势, 通过表名一段一段细分该表属于什么类型的功能. 如"t_sys_role"表示的含义为: 系统(sys)角色(role)相关的表(t_)

字段名多个单词之间使用下划线"_"分割,  不用关键字做为列名, 列名和实体字段名保持一致, 相关功能的字段紧挨着, 方便查看(如:地址, 详细地址, 地址经纬度等字段紧邻).

===字段相关===

1. 基础字段:

id(表记录唯一id, 即表主键id),

create_time(记录创建时间, 年月日时分秒),

update_time(记录最后更新时间, 年月日时分秒),

deleted(是否删除, 做软删除使用),

logic_id(业务id编号, 添加唯一索引, 等效于主键id. 如在机构表中, 机构编号我们可以设置固定的开头, 固定的格式,使数据格式保持一致 1. 在数据库迁移的时候, 因数据的关联是通过logic_id关联的,所以就不用担心id的处理方式了. 2. 因id一般为自增, 或者随机, 这些都造成编号差异性较大, 但logic_id我们可以通过设置规则, 保持其规律性.)

2. 业务相关字段同时出现, 并可以做组合索引. 主键id已经能唯一标识我们的记录, 但这个仅仅是物理层面的标识,  不能满足我们逻辑上的唯一性, 如用户表, 一般会认为姓名, 证件类型, 证件号码相同的为同一个用户, 所以当用户注册的时候, 如果我们不做任何的逻辑唯一性校验, 很容易造成同一用户注册多次的现象.

===其他原则===

. 不建议使用外键, 至少是开发阶段调试数据,太痛苦了

.是否含义的字段, 0:表示否, 1:表示是

 

===============java实体设计===============

.使用继承,将公共的字段放在父类中

.日期类型的字段, 可以采用日期, 也可以采用字符串类型, 但不要采用数字类型(不容易操作, 如:2点2分20秒, 可能会存为2220). 如果使用日期类型, 则可以考虑使用日期转换器, 将前端传递的日期字符串转换为相应的日期, 使用日期json序列化方式(com.fasterxml.jackson.annotation.JsonFormat的@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")), 将日期输出为字符串给前端. 

.驼峰命名, 见名知意, 适当缩写(保持项目中缩写一致)控制字段长度

.是否含义的字段, 可以考虑使用if为前缀, 替换is前缀, isShow-->ifShow

.字典类型的属性, 可以使用代号, 但一定要给代号设置相应的枚举值, 便于理解, 统一

. 建模时,考虑一定参数的冗余, 以减少多表查询

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 背景 学生选课管理系统是一种用于管理学生选课信息的软件系统,可以方便学生进行选课、退课、查询成绩等操作,同时也方便管理员进行课程管理、学生管理、成绩管理等操作。 2. 可行性 技术方面,本系统将采用Java作为后端语言,HTML、CSS作为前端语言,PS用于设计系统界面,MySQL作为数据库管理系统。这些技术都是成熟、稳定的技术,可以保证系统的可靠性和稳定性。因此,该系统是可行的。 3. 需求分析 该系统需要具备以下功能: - 学生选课功能:学生可以根据自己的兴趣和课程安排进行选课。 - 课程管理功能:管理员可以添加、修改、删除课程信息。 - 学生管理功能:管理员可以添加、修改、删除学生信息。 - 成绩管理功能:管理员可以录入、修改、查询学生成绩信息。 4. 概要设计 在用户角度上,学生可以进行选课、查询成绩等操作,管理员可以进行课程管理、学生管理、成绩管理等操作。在数据库设计方面,我们可以采用E-R图来设计实体和联系模型。实体包括学生、课程、成绩等,联系包括选课、开设课程等。 5. 逻辑结构设计数据库方面,我们可以设计多个,包括学生、课程、成绩、选课等。每个包含多个字段,字段的数据类型需要根据实际情况进行约束。例如,学生中可以包含学号、姓名、性别、年龄等字段,其中学号需要设置为主键,以便唯一标识每个学生。 6. 实现 在实现方面,我们可以采用MySQL作为数据库管理系统,使用Java编写后端代码,HTML、CSS编写前端页面。在具体实现过程中,需要考虑系统的性能、安全性、可扩展性等方面的问题。同时,也需要进行测试、调试等工作,确保系统的稳定性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值