数据库设计规范(MySQL版)

数据库设计规范(MySQL版)

数据库名称

  1. 统一小写,并且使用下划线进行连接

数据表名称

  1. 统一小写,并且使用下划线进行连接
  2. 加上业务名前缀

表字段名称

  1. 统一小写,并且使用下划线进行连接
  2. 建议:status来表示状态

表字段类型及长度

  1. 尽可能选择占用存储空间小的字段类型,在满足正常业务需求的情况下,从小到大,往上选。

    如果字符串长度固定,或者差别不大,可以选择char类型。如果字符串长度差别较大,可以选择varchar类型。

    是否字段,可以选择bit类型。

    枚举字段,可以选择tinyint类型。

    主键字段,可以选择bigint类型。

    金额字段,可以选择decimal类型。

    时间字段,可以选择timestamp或datetime类型。

必须设置的字段

  1. ID属性:id,主键,unsignal bigint,自增策略(无特别要求,优先自增,步长为1;其次是雪花算法,最后是UUID和Redis的id策略)在单个数据库中,主键可以通过AUTO_INCREMENT,设置成自动增长的。

    但在分布式数据库中,特别是做了分库分表的业务库中,主键最好由外部算法(比如:雪花算法)生成,它能够保证生成的id是全局唯一的。

  2. 逻辑删除:is_deleted

  3. 创建时间:create_time

  4. 修改时间:update_time

  5. 乐观锁(版本):version

表设计的三范式

Java实体类的类型对应表字段类型

  1. 要用统一基本类型或是包装类型,看业务情况。

  2. 基本类型:

    优点
    1,用于计算是效率高;
    2,值比较方便,使用 == 就可以了。

    缺点
    1,从数据库中查出值时可能会有null,基本类型接收NULL值有NPE风险(java.lang.NullPointerException NPE 空值异常);
    2,默认值和NULL值不能传达同一种信息,例如考试分数字段,如果使用Integer类型,那么没有参加考试的分数可以设置为null;如果用int类型,那么分数值都是0,无法没有参加考试还是参加考试得0分。

  3. 包装类型:

    优点
    1,可以存放null,从数据库中查出值时可能会有null;

    缺点
    1,不能使用 == 比较相等。
    2,占用更多的内存空间;

  4. 建议:所有POJO类属性必须使用包装数据类型;所有的局部变量推荐使用基本数据类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值