mssql sqlserver 公司数据库设计规范分享


数据对象命名规范

1.数据库所有对象应采用小写字母加下划线加模块名 例:
proc_sale_saleBillInsert 销售单插入存储过程
tb_sale_saleBillMain 销售单主表表名
2. 数据库中所有对象禁止使用sql保修关键字和中文
3. 数据库中所有对象应做到通过其名字就可以知道其用途,对象名称长度不要超过30个字符
4.所有临时对象应以tmp开头
例:tmpTb_*****临时表
tmpProc_****临时存储过程
5.备份文件,都以bak结尾,并加上日期
6.不同表中表示相同对象必须使用相同的列名和数据类型,避免歧义产生



数据库基本设计规范

1.数据文件和日志文件需分盘存放
2.数据库和表的字符集统一(使用UTF-8)
3.数据库中所有表及字段需加上备注说明,方便后期维护
4.需考虑后续的单表大小,避免出现单表过大,导致后续的异常发生
5.谨慎使用分区表,多从架构上考虑数据拆分(分库分表)
6.做到冷热数据分离存放,
7.表中禁止存放无用的字段
8.数据表中,禁止存放文件和图片等大数据文件
9.禁止在生产环境,做压力测试
10.禁止未测试的任何设计直接进入生产环境



数据库索引设计规范

1.表索引的控制,不能超过5个
2.每张数据表都需设置相应的主键
3.索引的添加的同时,需结合业务,尽量将索引设置在查询条件上
4.索引设置时,include相关列
5.禁止重复索引
6.少使用外键
7.频繁用到的数据,多使用程序级缓存



数据库字段设计规范

1.按需选择数据类型
2.禁止使用text blog 等占用空间大的数据类型
3.所有列都定义为NOT NULL
4.时间类型的选择,需慎重选择
5.金额类的数据选择,禁止使用float型



sql脚本开发规范

1 编写脚本时,选择和数据表一样的数据类型
2 合理利用表索引
3 禁止使用select ,需使用 select [列名] 等样式
4 sql脚本禁止跨库查询
5 insert 脚本编写使用,必须使用 insert into [表名]([列名1],[列名2],…)
6 用左连接代替子查询操作
7 连接表不要超过10个
8 尽量减少同数据库的交互操作
9 排序操作,尽量使用数据表已存在的排序索引
10 尽量使用union all 代替union 关键字
11 避免编写负责的sql, 应将复杂的sql脚本分解为小段的sql信息



数据库安全

1.对于大量数据导入,需分批导入,避免一次性导入大量数据
2.做好数据备份操作
3.数据库各账号,遵从最小权限原则