数据库命名和设计规范

数据库规范

命名规则

全局命名规则

  • 使用具有意义的英文词汇命名,词汇中间以下划线分隔"_"
  • 命名只能使用英文字母、数字、下划线,以英文字母开头
  • 避免用数据库中的保留字如:SELECT、FROM
  • 所有数据库对象使用小写字母

库名规则

  • 数据库命名尽量不超过30个字符
  • 数据库命名一般为项目名称+代表库含义的简写,如:finger_plus
  • 数据库创建时必须添加默认字符集和校对规则子句,如:字符集(utf8mb4)

表名规则

  • 常规表表名命名规则 模块(包含模块含义的简写)+ 表(包含表含义的简写),比如用户模块的用户信息表:user_info
  • 临时表,命名规则:temp前缀+模块+表+日期后缀:temp_user_info_20220413
  • 备份表(用于保存和归档历史数据或者作为灾备恢复的数据)命名规则,bak前缀+模块+表+日期后缀:bak_user_info_20220780
  • 同一个模块的表尽可能使用相同的前缀,表名称尽可能表达含义
  • 常规表表名尽量不超过30个字符,一般不超过三个英文单词,temp表和bak表视情况而定,也尽量简短为宜
  • 表的名称一般使用名词或者动宾短语(实在不行可以使用拼音首字母)
  • 用单数形式表示名称(表名不使用复数名词),列如:使用 user ,而不是 users(因为用户表是一个的而不是多个)
  • 表必须填写描述信息(建表时可以用注释详细写出表细节的作用,不同数据库的注释都不一样)
--表名示例
customer_info --会员信息
customer_address --会员收货地址
pt_admin --平台管理员用户
pt_role --平台角色

字段名规则

  • 字段命名需要表示其实际含义的英文单词或简写,单词之间用下划线 _ 进行连接,如 service_ip、service_port
  • 各表之间相同意义的字段必须同名,比如a表和b表都有创建时间,应该统一为add_time
  • 字段名尽量不超过30个字符,一般采用名词或动宾短语,选词必须易于理解,一般不超过三个英文单词(实在不行可以使用拼音首字母)
  • 字段必须填写描述信息
  • 在命名表的列时,不要重复表的名称(如:在 user 表中,出现 user_name 字段)
-- 字段名示例
id --主键
add_time --添加时间
last_update_time --最后一次更新时间

视图命名规则

  • 视图名以v开头,表示view,完整结构是v+视图内容含义缩写。
  • 如果视图只来源单个表,则为v+表名。如果视图由几个表关联产生就用v+下划线(_)连接几个表名,视图名尽量不超过30个字符。如超过30个字符则取简写。
  • 如无特殊需要,严禁创建视图。
  • 其他命名规则与表名相同

存储过程命名规则

  • 存储过程名以sp开头,表示存储过程(storage procedure)。之后多个单词以下划线(_)进行连接。存储过程命名中应体现其功能。存储过程名尽量不能超过30个字符。
  • 存储过程中的输入参数以i_开头,输出参数以o_开头。

函数命名规则

除了前缀改为“f_”,其余与存储过程相同

数据库设计规范原则

  • 表不应该有重复的值或者列
  • 每个表必须要有主键
  • 减少每张表使用的索引数量,因为维护索引的成本很高
  • 对于所有的非参数、非代码类实体表,增加相应的技术字段(创建时间create_time,创建用户create_user,变更时间update_time,变更用户update_user),用以记录数据操作的记录,以便于数据审计
  • 单个表尽量保证只存在一个大字段
  • 单个表字段总设置行长度不要超过8k
  • 字段不能使用enum,set类型,应该使用TINYINT来代替
  • 单个表的索引个数最多不要超过7个
  • 所有字段尽量定义为NOT NULL,如需default 空,建议使用default ‘’。如果null字段建立索引,需要额外的1字节,使索引,索引统计,值的比较变得更复杂
  • 所有表、列、视图等必须有comment注释,便于开发和后期维护

你可能感兴趣的:(数据库,数据库,设计规范,sql)