数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。下面给出了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. 多花点时间在数据库设计上,否则你将来会付出加倍的时间来偿还。(oschina.net虫虫译) 英文原址:javacodegeeks.com

转载于:https://www.cnblogs.com/DiligentTuolaji/p/3505469.html

20个数据库设计的最佳实践相关推荐

  1. mysql数据库设计实践_MYSQL教程分享20个数据库设计的最佳实践

    <MYSQL教程分享20个数据库设计的最佳实践>要点: 本文介绍了MYSQL教程分享20个数据库设计的最佳实践,希望对您有用.如果有疑问,可以联系我们. MYSQL教程数据库设计是整个程序 ...

  2. 20个数据库设计最佳实践

    2019独角兽企业重金招聘Python工程师标准>>> 数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂 ...

  3. 前沿分享|阿里云高级技术专家 王若(百润): 数据库游戏行业最佳实践

    简介:在游戏的开发和运营当中,数据库的使用场景非常多.面对游戏访问压力.游戏合服场景.游戏排行榜等场景, 阿里云为用户提供了最佳解决方案. 本文从三个方面来为大家介绍数据库游戏行业最佳实践: 游戏架构 ...

  4. 本周五丨数据库智能管控最佳实践与探索

    数据库管控能力的高低直接影响了企业数字化转型的进程,甚至于关乎成败.面对日趋丰富的业务场景和复杂的数据库环境,要做好数据库的管控工作,势必要引入云化.平台化.智能化的架构设计与技术. 那么本次云和恩墨 ...

  5. Prometheus Metrics 设计的最佳实践和应用实例,看这篇够了!

    Prometheus 是一个开源的监控解决方案,部署简单易使用,难点在于如何设计符合特定需求的 Metrics 去全面高效地反映系统实时状态,以助力故障问题的发现与定位.本文即基于最佳实践的 Metr ...

  6. 卡片式设计的最佳实践分享

    2017-02-17 三达不留点gpj CocoaChina 卡片本质上是一个简单的信息容器,信息量有限,但设计干净整洁.现如今,在保证界面具有优秀可用性的同时,卡片式的设计甚至成为了平衡界面美学的默 ...

  7. 搜索引擎优化网页设计:最佳实践

    作为一名网页设计师.网页的设计是我们一个最直观的辨认.我们如今的生活依赖于网络,依赖于这个高速让我们互知和沟通的工 具.它早已不不过一个静态的页面,而是一个有思想有文化无国界的一个内容涵盖量丰富的还有 ...

  8. 业务单据进行领域驱动设计的最佳实践

    作者:少岚 阿里同城履约物流技术团队 本文以电商购物场景为例,介绍了领域驱动设计的应用实践.你会发现,DDD的核心目标就是通过各种实用性的方法和技巧提炼出具有体现问题实质的领域模型,协作解决领域问题, ...

  9. 22条API设计的最佳实践

    译者:刘志超,软件工程师.DevOpsDays.HDZ深圳核心组织者,目前供职于华为,从事云计算工作,专注于K8s.微服务领域. 来源:dockone.io/article/2434604 原文:ht ...

最新文章

  1. ajax 中文乱码问题 主要是IE浏览器
  2. Python学习 Day 3 字符串 编码 list tuple 循环 dict set
  3. ubuntu16.04 64bit 安装 ida
  4. 编程语言也有中年危机,Java 为何一直被唱衰?
  5. Node.js Express+Mongodb 项目实战
  6. keepalived 多个应用_Keepalived高可用软件概述
  7. LDA主题模型(算法详解)
  8. windows 7 下 .net 开发环境的搭建
  9. Android Java类编写规范+优化建议
  10. 【软件测评】屏幕标注软件
  11. Java安全生态-Java加解密API详解-Java安全框架官方文档翻译:对称/非对称加密、数字签名、数字证书、安全通信、密钥库等
  12. SQL语句练习题(壹)
  13. 求逆矩阵的c语言程序,求逆矩阵——C语言
  14. IE地址栏前换成自己的图标
  15. 高数 | 【重积分】线面积分880例题
  16. 【学习】PCF8563芯片资料和相关功能解析
  17. 电工电子电力拖动及自动化技术考核实训台QY-DG800D
  18. 【现代信号处理】17 - 基于滤波器组的谱估计
  19. 转载:旅行自行车选购技巧
  20. R语言可视化——REmap动态地图

热门文章

  1. iOS - OC NSLocale 本地化信息
  2. Spring MVC之DispatcherServlet请求处理(二)
  3. ylbtech-LanguageSamples-SimpleVariance
  4. C语言经典算法100例-037-给10个数排序
  5. [转]浅谈浏览器插件检测 和自定义协议的支持
  6. ubuntu11.10+git+svn works
  7. Hadoop 部署实例
  8. 神策数据创始人桑文锋:AARRR模型如何应用到产品各个阶段
  9. 咖友:打个雷啊 | 今日头条VS腾讯新闻:让马化腾也坐不住的新闻资讯行业未来之争...
  10. Android实现退出提示的功能