20条数据库设计最佳实践

通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求最好满足以下20条规则: 
1、使用定义良好的和一致的名称表和列(如School、StudentCourse CourseID…)。

2、使用单一的表名(即使用StudentCourse代替StudentCourses)。表代表实体的集合,不需要复数的名字。

3、不要使用空格来定义表名。否则你将不得不使用’{‘、”、’”’等字符定义表(例如accesing表学生课程你会写”Student Course”。StudentCourse要好得多)。

4、不要使用不必要的前缀或后缀表名(例如使用School而不是TblSchool、SchoolTable等等)。

5、保持加密密码的安全。在应用程序需要时进行解密。(散列存储、单向加密)

6、使用整数类型的id应用于所有表。如果暂时不需要id,它可能需要在未来(关联表,索引……)。

7、选择整数数据类型(或其变体)的列为索引。varchar类型的列索引将会导致性能问题。

8、使用bit类型应用于布尔值。使用integer或varchar就会产生不必要的存储消耗。当命名这些列的时候最好以”Is”开头。

9、需要数据库访问权限。不要给每个用户admin角色。

10、避免”select *”查询,直到它真的是必要的。使用”选择[required_columns_list]”获得更好的性能。

11、假如程序代码比较复杂,使用ORM(object relational mapping)框架。ORM框架的性能问题可以由详细的参数配置。

12、把那些用得很少或者没有使用的表分配到不同的物理存储,这样就可以得到更好的查询性能。

13、对于那些大的、敏感的和以及最要的数据库系统,利用灾难恢复与安全的服务。例如故障转移集群、自动备份、复制等。

14、对数据的完整性使用约束(外键,检查,not null…)。不要把所有的控制逻辑交给应用程序代码。

15、缺乏数据库文档是很不幸的。编写数据库设计文档使用ER图并且说明。并且为你触发器、存储过程和其他脚本写注释。

16、为大表并且常用的查询增加索引。分析器工具可以用来确定哪里需要使用索引。查询一系列的行来作为条件,联合索引通常是更好。对于单个字段的条件查询,为该字符作为索引通常是更好。

17、数据库服务器和web服务器必须部署在不同的机器上。这将提供更多的安全(攻击者不能直接访问数据)并且服务器CPU和内存性能会更好,因为减少请求数和处理。

18、图形和blob数据列不能定义在频繁查询的表中,这是基于的性能考虑。把这些数据单独放在单独的表中。然后用引用指向这些数据,也就是关联查询。

19、必须使用数据库设计第三范式规范化要求,优化性能。不使用范式将导致过度重复的数据在太多的表中,过度使用范式将导致太多的表需要jion。他们都会使用系统的性能变得很差。

20、很有必要花时间对数据库进行建模和设计。否则为了减少设计时间将导致花费 10倍/100倍甚至1000倍的时候用于维护和重新设计。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值