您的位置:首页 > 数据库 > MySQL

mysql数据库设计规范

2016-04-18 23:50 351 查看
基本原则

1. 避免表关联操作(join) (推荐在应用服务层,通过业务代码来完成)

2. 业务开发避免使用procedure,function,trigger (推荐在应用服务层,通过业务代码来完成)

3. 发版过程中产生的备份表、临时表应及时清除。例如:NewCaseFolder0213、NewCaseFolder.Chart_Timeline_temp_20140508

4. 不在数据库做运算,运算移至业务层处理。例如:各种mysql函数调用 md5() / Order by Rand()

5. 单表字段数少而精,上限控制在20个左右。

6. 拒绝3B,大SQL( Big SQL ),大事务( Big Transaction ),大批量( Big Batch )

7. 永远不在程序端对数据库显式加锁

8. 数据库编码默认是 utf8mb4,以支持表情符号

9. 使用InnoDB存储引擎

10. 所有表都需要添加注释

11. 不在数据库中存储图 、 文件等大数据

12. 库名、表名、字段名禁止使用英文缩写、拼音缩写,须见名知意 (推荐使用英文单词全名)

命名规范表名

1. 正式表以 t_ 开头

2. 全小写字母,单词之间用下划线分隔。比如:user_name

3. 表名不允许出现数字,例如:EPocket2

4. 正式的业务表表名不允许使用copy、temp、new等有歧义的名称,例如:NewCaseFolder.Chart_Timeline_Temp,EPocket2.CalculatorNew

5. 业务日志表以_log结尾,业务日志是记录业务操作的历史,只有数据追加(insert),没有update操作和delete操作。

字段名

1. 全小写字母,单词之间用下划线分隔。比如:user_name

2. 时间列明确区分 date 和 time,比如:EPocket2.Drug 的 PubDate 列格式是datetime,应该命名为pub_time

3. 描述尽量详细,不能含糊,因为含糊会导致不同的字段意义,却有相同的名称。容易导致误解。例如:

xsl_visit.Solution_Resources 患教库和 xsl_visit.TimerJob 定时任务的列表中,有同一列 contentTypeID,但意义不同。应该分别命名为 resources_type_id 和 job_type_id。

4. 描述要能够精确对应字段含义,禁止为了省事儿而借用其它列,导致列名与字段含义不对应的情况。例如:

EPocket2.GuideNew 的列 PubDate 是物理指南的发布时间,EPocket2.Drug 的列 PubDate 是药品上线时间

其它名称

1. 索引命名以 idx_ 开头,单词间用下划线分割,idx之后跟索引列的列名。例如在userid上建立索引,命名为:idx_userid

2. 唯一索引命名以unique_idx_开头,单词间用下划线分割,idx之后跟索引列的列名。

3. 视图以 v_ 开头
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: