数据库设计规范

本文介绍了数据库设计的一些规范,包括表命名、字段类型选择、索引命名、字段长度控制、逻辑删除与物理删除的区别、通用字段的设置以及字段数量和约束的考虑。强调了提高可读性、存储效率和查询性能的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库表命名规范:

1.表名的命名可读性要高,让人一眼就知道是什么意思

2.必须使用字母小写或数字,禁止用数字开头,禁止使用拼音,不使用缩写

3.主键索引名为pk_字段,唯一索引名为uk_字段,普通索引idx_字段

4.尽可能选择存储空间的字段类型,像数字类型的,从tinyint、smallint、int、bigint,从左往右选

5.小数类型,选择decimal,禁止使用float和double

=========================================================================

6.如果存储的字符串长度几乎相等,使用char

  1)字符和字节的区别

        varchar和char类型是字符长度,其他类型都表示字节长度

                比如char(10)表示字符长度是10,bigint(4)表示4个字节长度,但因为bigint的实际长度是8个字节,所以bigint(4)的实际长度就是8个字节

2)设计表怎么定义字段的长度:

        一个用户名的字段为(5~20字符):字符的长度一般设置为2的幂,所以就是username varchar(32)

                1、2、4、8、16、32、64、128…………

7.varchar长度不要超5000

8.如果存储的值太,建议字段类型修改为text,同时抽出单独一张表,用主键与之对应

  1)主键不要与业务逻辑有所关联,像身份证,不要用来做主键,推荐使用毫无意义不重复的数字,比如自增的主键

9.在同一张表中,所有varchar字段长度加起来,不能超过65535,如果超过,请使用text/longtext

=========================================================================

10.优先考虑逻辑删除,而不是物理删除

        1)物理删除把数据从硬盘删除

        2)逻辑删除:给数据添加一个字段,比如is_deleted,标记该数据已经逻辑删除

                例如:删除user_id='1'的信息

                物理:delete from t_user user_id='1'

                逻辑:update t_user set is_deleted=1 where user_id='1'

11.每个表都需要添加几个通用字段

如主键、create_time、modifed_time……

        id:主键,每个表必须有一个主键,必须

        create_time:创建时间,必须

        modifed_time:修改时间,必须,更新记录时,需要更新它

        version:数据记录的版本号,用于乐观锁,非必须

        remark:数据的记录备注,非必须

        modified_by:修改人,非必须

        creator:创建人,非必须

12.表字段:

        不宜超过20个字段,字段过多会导致查询效率降低,如果业务需要很多字段,可以把一张大表拆分成多张小表,主键相同即可,或者,拆分为两张表,一张用于条件查询,一张作为详细内容表

13.尽可能使用not null定义字段

        1.not null 可以防止出现空指针

        2.null值也占用空间,会导致运算更为复杂,难优化SQL

        3.null值可能导致索引失效

                1)表数据量>150行,没必要加索引

        4.如果把字段设置为空字符串或常量值没什么不同,且不会影响应用逻辑,那就把字段设为    not null

14.表约束

 

原文是B站的CoderYang作者,这是本人的听课笔记。喜欢的点点赞,你的喜欢是我创作的动力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值