20条数据库设计最佳实践
发布日期:2021-06-29 12:51:48 浏览次数:2 分类:技术文章

本文共 1367 字,大约阅读时间需要 4 分钟。

通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求最好满足以下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倍的时候用于维护和重新设计。

原文地址:

转载地址:https://carlzone.blog.csdn.net/article/details/51754950 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Method Size Limit in Java
下一篇:Spring 编码过滤 -- 解析Filter实现原理

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月05日 17时40分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章