智一科技 约定 mysql

设计:

1.只用表跟索引。

2.其他视图,外键,存储过程,函数通通都不用。

 

表:
1.命名:

  采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔。

  全部小写命名,禁止出现大写

  禁止使用数据库关键字,如:name,time ,datetime,password等

  用单数形式表示名称,例如,使用 employee,而不是 employees

  系统级别举例: opt_sys_user 或者 opt_admin_user

  业务级别举例: opt_cms_link 或者 opt_cms_nav 或者 opt_cms_menu

2.引擎:

  统一innodb

3.格式

  表默认编码utf8mb4

  默认排序规则utf8mb4_general_ci

4.注释

  写表注释

字段规范:

1.命名:

  采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔

  全部小写命名,禁止出现大写

  除user表,其他表用user_id代表用户id

  布尔类型的值均以 is、has、exist 或者 can开头

  禁止使用数据库关键字,如:name,time ,datetime password 等

  在命名表的列时,不要重复表的名称.例如,在名employe的表中避免使用名为employee_lastname的字段

2.格式 

   多语言排序要求字符串类型,统一utf8mb4_unicode_ci

3.注释

  除了主键,其他字段要写注释

 

字段类型:

1.所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary 、varbinary外,必须有默认值,字符型的默认值为一个空字符值串’’,数值型的默认值为数值0,逻辑型的默认值为数值0

2.不用NULL

3.固定长度的字符串用char不用varchar

4.满足预见的未来需求的前提下,数据类型尽量小。

5.数据类型尽量用数字类型,数字类型的比字符类型的要快很多。

6.系统中所有逻辑型中数值0表示为“假”,数值1表示为“真”

7.用尽量少的存储空间来存储一个字段的数据使用int就不要使用varchar、char,用varchar(16)就不要使varchar(256)

8.所有date,time,datetime都用int或者bigint类型保存时间戳

 

固定字段命名
create_time作为记录创建时间
update_time作为记录更新时间
delete_time作为记录软删除时间(需要软删除的表统一加delete_time字段)(默认0为没有删除)
status作为记录状态(0禁用/1启用)
sort作为排序(默认值为100,默认排序按从小到大)
table_name作为表名,字段varchar长度64
remark代表备注,给管理员区分记录类型用
description代表描述给前台用户用
image 代表图片,thumbnail 代表缩略图,photos代表相册
parent_id代表父级ID,
id_tree代表id层级关系
id_layer代表id等级

 


待优化命名示例
①大小写规则不统一
错误示例:user_Id houseID
说明:使用统一规则,修改为”user_id”,”house_id”
②加下划线规则不统一
错误示例:username userid isfriend isgood
说明:使用下划线进行分类,提升可性,方便管理,修改为”user_name”,”user_id”,”is_friend”,”is_good”
③字段表示不明确
错误示例:uid pid
说明:使用完整名称,提高可读性,修改为”user_id”,”person_id”

 

posted @ 2019-04-08 14:45  吴泽楷  阅读(120)  评论(0编辑  收藏  举报