20个数据库设计的最佳实践

原文:20个数据库设计的最佳实践

  数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序。一起来了解了解吧。

 

  1. 使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。
  2. 数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses。
  3. 数据表名不要使用空格。
  4. 数据表名不要使用不必要的前缀或者后缀,例如使用School,而不是TblSchool,或者SchoolTable等等。
  5. 数据库中的密码要加密,到应用中再解密。 (其实就是散列存储、单向加密)
  6. 使用整数作为ID字段,也许现在没有这个必要,但是将来需要,例如关联表,索引等等。
  7. 使用整数字段做索引,否则会带来很大的性能问题 。
  8. 使用 bit 作为布尔字段,使用整数或者varcha是浪费。同时,这类字段应该以“Is”开头。
  9. 要经过认证才能访问数据库,不要给每一个用户管理员权限。
  10. 尽量避免使用“select *”,而使用“select [required_column_list]”以获得更好的性能。
  11. 假如程序代码比较复杂,使用ORM框架,例如hibernate,iBatis。ORM框架的性能问题可以通过详细的配置去解决。
  12. 分割不常使用的数据表到不同的物理存储以获得更好的性能。
  13. 对于关键数据库,使用安全备份系统,例如集群,同步等等。
  14. 使用外键,非空等限制来保证数据的完整性,不要把所有的东西都扔给程序。
  15. 缺乏数据库文档是致命的。你应该为你的数据库设计写文档,包括触发器、存储过程和其他脚本。
  16. 对于经常使用的查询和大型数据表,要使用索引。数据分析工具可以帮助你决定如何建立索引。
  17. 数据库服务器和网页服务器应该放在不同的机器上。这回提高安全性,并减轻CPU压力。
  18. Image和blob字段不应该定义在常用的数据表中,否则会影响性能。
  19. 范式(Normalization)要按照要求使用以提高性能。Normalization做的不够会导致数据冗余,而过度Normalization 会导致太多的join和数据表,这两种情况都会影响性能。
  20. 多花点时间在数据库设计上,否则你将来会付出加倍的时间来偿还。

  英文原址:javacodegeeks.com

时间: 2024-10-09 21:46:40

20个数据库设计的最佳实践的相关文章

分享20个数据库设计的最佳实践_Mysql

数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程.下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序.一起来了解了解吧. 1.使用明确.统一的标明和列名,例如 School, SchoolCourse, CourceID. 2.数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourse

20个数据库设计最佳实践

数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程.下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序.一起来了解了解吧. 使用明确.统一的标明和列名,例如 School, SchoolCourse, CourceID. 数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses. 数

001_《Delhpi6数据库设计思想与实践》

<Delhpi6数据库设计思想与实践> Delphi 教程 系列书籍 (001) <Delhpi6数据库设计思想与实践> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2   作者=林华聪等编著 页数=460 出版日期=2002年11月第1版   内容简介: 本书是使用Delphi作为数据库应用程序的软件开发工具的专题介绍,基本涵盖了使用Delphi进行数据库应用编程的所有关键技术.本书坚持理论和实践相结合.方法和工具相结合.工具的使

数据库优化的最佳实践

在许多很好的例子,技术和方法被世界上最好的数据库性能专家所高荐.我们将讨论提高数据库性能的最常用的方法,而不是评论或建议任何特定的工具或技术. 1)谨慎而有效地使用索引 选择合理的索引(前缀性及可选性).删除没有用的索引. 2)使用规范化,但不要使用过头 规范化(至少是第三范式)是一个易于理解且标准的方法.然而,在有些情况下,你可能希望违反这些规则.查询表通常是规范化的产物,也就是说,你创建了一个特殊的表,这个表包含了在其他表中被频繁使用的相关信息的列表.然而,当使用那些经常被访问且分布有限(仅

京东MySQL数据库Docker化最佳实践(附PPT)

讲师介绍  刘风才 京东资深数据库专家     2012年加入京东,担任MySQL DBA一职,负责数据库架构设计.数据库性能优化等日常运维工作,参与过分布式数据库项目.多中心交易项目等. 2013~2016连续4年作为MySQL数据库618.11.11项目DBA负责人,负责相应备战工作,为大促平稳护航.   演讲大纲: 京东Docker技术发展历程 MySQL数据库为何要Docker化 MySQL数据库Docker化前准备工作 遇到的问题与解决方案 总结与展望   京东MySQL数据库Dock

5种微型移动网站设计的最佳实践

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 随着智能手机和平板电脑的的爆炸,越来越多的人比以往任何时候都恋上了移动网络,对于seo优化而言,移动优化设备的登陆页面,经验欠缺,导致seo在移动优化方面欠缺很多,对于优化而言,移动优化是不是太复杂太难转移?事实证明,并非如此,五个简单的微型设计和大家一起学习下: 1.留比例 微型移动设计提供了大量的高价值互动内容,从优化角度分析用户最早关注

5大移动网页设计之最佳实践

本文来自SocialBeta内容贡献者wisp,原文译自Mobile Web Design: Best Practices,更多移动产品设计方面的资料,请查看SocialBeta移动互联网栏目. 移动设备的兴起正在给互联网带来一场新的革命,虽然说移动网页设计原则不会有多大变化,但是却有着明显的区别. 至少有一点是截然不同的,目前移动设备的网络速度可比不上宽带,另外移动网页呈现方式也是多样的,有触摸屏,有上网本,这些小屏幕却貌似巨人! 可能有些人会认为移动化其实根本没必要,但是几乎所有人都得承认这

PostgreSQL 9.6 sharding + 单元化 (based on postgres_fdw) 最佳实践 - 通用水平分库场景设计与实践

PostgreSQL 9.6 sharding + 单元化 (based on postgres_fdw) 最佳实践 - 通用水平分库场景设计与实践 作者 digoal 日期 2016-10-05 标签 PostgreSQL , 9.6 , 水平分库 , sharding , 单元化 背景 20161004_01.md这篇文档讲解了PostgreSQL postgres_fdw的用法以及9.6的增强. 本文将以实践为主,定一个小目标,讲解一下如何使用postgres_fdw实现sharding.

阿里云数据库专家玄惭:云数据库超大流量峰值保障最佳实践

大流量高并发互联网应用实践在线峰会官网:https://yq.aliyun.com/activity/112 峰会统一报名链接:http://yq.aliyun.com/webinar/join/49 议题名称:<云数据库超大流量峰值保障最佳实践> 议题简介:本次演讲收集整理了自RDS成立至今,在历次大流量峰值中如何保障活动中云数据库备战的最佳实践,包括之前的改造,压测和扩容:期间的监控,预案执行和应急处理:之后的收容和总结.力求全链路地帮助客户安全稳定地渡过超大流量峰值,让在你备战过程中少走