🏠数据库规范

特别注意:在团队之间存在数据相互交叉使用的情况,一点要先沟通!!!

各个语言的规范不一样时,相互使用会造成歧义,所以规定了规范

设计原则

按阶段实施并形成该阶段的成果物一般符合3NF范式要求;兼顾规范与效率使用项目规定的数据库设计软件工具命名符合项目标准。

  • 第一范式(1NF):字段值具有原子性,不能再分(所有关系型数据库系统都满足第一范式);

例如:姓名字段,其中姓和名是一个整体,如果区分姓和名那么必须设立两个独立字段;

  • 第二范式(2NF):一个表必须有主键,即每行数据都能被唯一的区分;

备注:必须先满足第一范式;

  • 第三范式(3NF):一个表中不能包涵其他相关表中非关键字段的信息,即数据表不能有沉余字段;

备注:必须先满足第二范式;

命名规范

数据库

  • 多个单词用下划线分割,命名简单明确,不要使用无意义的简写,例如:单字母;

  • 数据库以:detabes_ 开头;

    • 归属项目的采用:detabes_项目名_xxxxxx;

    xxxxxx 表示同一个微服务项目工程的子项目名

    • 没有归属项目的采用:detabes_xxxxxx;

  • 多个单词用下划线分割,命名简单明确,不要使用无意义的简写,例如:单字母;

  • 系统相关的表用:sys_ 开头;

  • 数据资源相关的表用:res_ 开头;

  • 关联关系表用:relation_ 开头;关系表把关联表写上,例如:relation_user_role;

  • 临时表用:temp_ 开头;

  • 测试表用:test_ 开头;

字段

  • 多个单词用下划线分割,命名简单明确,不要使用无意义的简写,例如:单字母;

  • 在多单词组合中避免使用:is、and、or、not

例如:is_check --> checked、name_or_title --> name

索引

  • 主键:pk_表名_字段名

    • 例如:表(sys_user),主键字段(id)

  • 主键约束名:pk_sysuser_id

    • 多字段用下划线分割,例如,主键(code,role):pk_sysuser_code_role;

  • 唯一约束:uidx_表名_字段名

    • 例如:表(sys_user),唯一字段(code)

  • 唯一约束名:uidx_sysuser_code

    • 多字段用下划线分割,例如,唯一字段(code,role):uidx_sysuser_code_role;

  • 索引:idx_表名_字段名

    • 例如:表(sys_user),索引(code),索引名:idx_sysuser_code;多字段用下划线分割,例如,索引字段(code,role):idx_sysuser_code_role;

ElasticSearch

每个索引必须创建唯一字段,唯一字段的值和es自建的唯一_id的值保持一致

索引

  • 多个单词用下划线分割,命名简单明确,不要使用无意义的简写,例如:单字母;

  • 数据资源相关的表用:res_ 开头;

  • 关联关系表用:relation_ 开头;关系表把关联表写上,例如:relation_user_role

  • 临时索引用:temp_开头;

  • 测试索引用:test_ 开头;

字段

  • 多个单词用下划线分割,命名简单明确,不要使用无意义的简写,例如:单字母;

  • 在多单词组合中避免使用:is、and、or、not,例如:is_check --> checked、name_or_title --> name

  • nested类型(对象列表)使用:_infos 结尾。例如,作者信息:author_infos,对应数据:

  • nested类型(对象)使用:_info 结尾。例如,联系方式:contact_info,对应数据:

  • array类型(字符串列表)使用:s 结尾。例如,关键词列表:keywords; 主题词列表:subjects,对应数据:

Last updated