`
shinepengwei
  • 浏览: 45606 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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. 多花点时间在数据库设计上,否则你将来会付出加倍的时间来偿还。
分享到:
评论

相关推荐

    20个数据库设计最佳实践

    ### 数据库设计最佳实践 #### 1. 使用明确、统一的命名规则 - **实践要点**:为了确保数据库的一致性和可读性,应采用一套明确的命名规则。例如,表名可以使用如`School`、`SchoolCourse`、`CourseID`这样的命名...

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

    以下是对《20个数据库设计最佳实践》中提到的一些关键点的详细说明: 1. **明确、统一的标识和列名**:使用清晰易懂的命名规范可以提高代码可读性,减少误解。例如,`School`, `SchoolCourse`, `CourseID` 这样的...

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

    ### 数据库设计最佳实践 #### 1. 使用明确、统一的命名规则 - **实践要点**:确保所有的表名、字段名使用一致且有意义的命名规范。例如,使用`School`、`SchoolCourse`和`CourseID`这样的命名方式。 - **好处**:有...

    数据库设计的 10 个最佳实践!(csdn)————程序.pdf

    【数据库设计的10个最佳实践】 1. **考虑所有利益相关者的观点**:在设计数据库前,了解所有相关人员的需求和预期,以便创建符合用户需求和操作习惯的数据库。 2. **选择合适的数据库类型**:根据应用程序的需求,...

    Greenplum 数据库最佳实践

    掌握Greenplum数据库的最佳实践是确保数据库集群高效运行的关键。 最佳实践可以从多个方面来考虑,包括集群的维护、支持、性能优化和可扩展性等。 在集群维护方面,首先应确保硬件资源的合理分配和优化使用。...

    DB2数据库管理最佳实践pdf

    DB2数据库管理最佳实践是IBM公司推出的一款关系型数据库管理系统,广泛应用于企业级的数据存储、管理和分析。这份PDF文档很可能是对DB2数据库在实际操作中的优化策略、配置技巧和故障排查方法的深入探讨,旨在帮助...

    数据库设计最佳实践:如何规划和优化你的数据库结构.md

    数据库设计的最佳实践,重点介绍了如何规划和优化数据库结构以实现高效、安全和可扩展的数据库系统。文章首先强调了数据库设计的重要性,包括数据完整性、性能优化、可维护性、扩展性和安全性。接着,涵盖了从需求...

    阿里云分布式关系型数据库DRDS-最佳实践-D.docx

    分布式关系型数据库 DRDS 最佳实践的核心思想是:在设计分布式关系型数据库时,需要考虑数据均衡度、事务边界、常用查询效率、异构索引和简单性策略等多个方面。此外,分布式关系型数据库 DRDS 还需要考虑容量和访问...

    计算机数据库设计优秀实践分享.pdf

    二、数据库设计的十个最佳实践 1. 将所有人的观点列入考量 在设计数据库之前,先收集信息,了解相关利益者的观点,了解他们对数据库的期望和操作熟练度。这样可以确定数据库的技术水平和是否需要培训用户。 2. ...

    数据库架构设计最佳实践.pptx

    数据库架构设计最佳实践涉及到多个方面的知识,包括关系数据库的发展历史、数据库系统的设计理念以及新兴的非关系型数据库和大数据处理技术。以下是对这些知识点的详细阐述: 1. **关系数据库的发展**: - **第一...

    内存数据库原理及最佳实践

    内存数据库原理及最佳实践 内存数据库,作为一种高性能的数据库管理系统,其核心优势在于将数据存储在主内存中,而非传统的磁盘存储,从而显著提升了数据处理速度和应用程序响应时间。本文将深入探讨内存数据库的...

    数据库相关最佳实践

    3. **数据库设计规范化**: - 第一范式(1NF):确保每个字段都是不可再分的基本数据项,避免冗余数据。 - 第二范式(2NF):在满足1NF的基础上,消除部分函数依赖。 - 第三范式(3NF):在满足2NF基础上,消除...

    数据库设计规范 数据库高效设计的好东西

    - 遵循一些最佳实践,例如,使用有意义的命名规则、避免过度规范化、设计灵活的架构以适应未来变化、使用视图以提供不同层次的数据访问权限等。 综上所述,高效数据库设计需要深入理解用户需求,精心规划数据模型...

    Oracle 数据库性能优化与运维最佳实践

    "Oracle数据库性能优化与运维最佳实践"的主题涵盖了如何确保Oracle数据库高效、稳定运行的关键技术和策略。 首先,性能优化涉及多个层面,包括SQL查询优化、存储结构优化、索引设计以及数据库参数调整。SQL查询优化...

    数据库设计的 10 个最佳实践.docx

    数据库设计的10个最佳实践是确保高效、稳定和安全数据管理的关键。以下是一些核心要点: 1. **理解需求**:在设计数据库之前,必须深入理解所有利益相关者的期望和需求,包括业务逻辑、数据处理流程以及用户交互。...

    数据架构设计与实践(上避免删库跑路黑天鹅,快狗打车数据库架构最佳实践.zip

    总之,《数据架构设计与实践(上避免删库跑路黑天鹅,快狗打车数据库架构最佳实践》提供的指导涵盖了数据安全、性能优化、扩展性设计和运维监控等多个方面,对于任何希望构建稳健数据库架构的企业来说,都具有重要的...

    数据库设计指南-数据库设计教程

    数据库设计是IT领域中的核心技能之一,特别...在"db_design_tips.pdf"中,你可能会找到上述知识点的具体解释、实例和最佳实践。学习并掌握这些知识,将有助于你成为一位出色的数据库设计师,有效应对各种数据管理挑战。

    数据库设计说明书

    数据库设计说明书是软件开发过程中的重要文档,它详细记录了数据库的设计思路、方法和实现细节,为项目的实施提供了明确的指南。...因此,每个开发者都应重视数据库设计,并遵循相应的规范和最佳实践。

    Greenplum 数据库最佳实践.pdf

    本文总结了 Greenplum 数据库的最佳实践,旨在帮助用户正确地设计、实现和使用 Greenplum 数据库。Greenplum 数据库是一个基于大规模并行处理(MPP)和无共享架构的分析型数据库,具有非规范化数据库模式,例如星型...

    互联网数据库架构设计最佳实践.docx

    【互联网数据库架构设计最佳实践】 在互联网环境中,数据库架构设计是一项关键任务,它涉及到系统的可用性、读写性能、一致性以及扩展性等多个方面。本文主要探讨了几个关键的设计思路和解决方案。 1. 可用性设计...

Global site tag (gtag.js) - Google Analytics