. 库名与应用名称保持一致
2. 表名,字段名必须使用小写字母或数字,且开头不能使用数字
3. 表名不能使用复数
4. 表命名规范,业务名称_表的作用
5. 表必备三个字段,id,create_time,update_time,其中id为主键类型为 bigint unsigned、单表时自增、步长为 1,(如果使用分库分表集群部署,则id类型为verchar,非自增,业务中使用分布式id生成器)
create_time,update_time 为datetime 类型,前者现在时表示主动创建,后者过去分词表示被动更新
6. 单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。
7. 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否)。
说明:任何字段如果为非负数,必须是 unsigned。
正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。
8. 小数类型为 decimal,禁止使用 float 和 double。 说明:float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不 正确的结果。如果存储的数据范围超过 decimal 的范围,建议将数据拆成整数和小数分开存储。
9、如果存储的字符串长度几乎相等,使用 char 定长字符串类型。
10、varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。
11、唯一索引名为 uk_字段名;普通索引名则为 idx_字段名。
说明:uk_ 即 unique key;idx_ 即 index 的简称
12、不得使用外键与级联,一切外键概念必须在应用层解决。外键与级联更新适用于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度。
数据库表的设计
原创wx5ba7ab4695f27 ©著作权
©著作权归作者所有:来自51CTO博客作者wx5ba7ab4695f27的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:前端(二十):Babel转码
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
openGauss学习笔记-127 openGauss 数据库管理-设置账本数据库-修复账本数据库
系统中需要有审计管理员或者具有审计管理员权限的角色。数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。
openGauss 国产数据库 开源数据库 数据库 RDBMS -
设计数据库表:用于 eggjs 实现记账本
用户模块用户名用于登录使用,具有唯一性用户可以设置自己的头像用户名不能
数据库 database 主键 标签名 用户登录 -
openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性
数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。
openGauss 国产数据库 开源数据库 数据库 RDBMS