数据库设计是整个程序的重点之一,为了支持相关程序运行,最佳的数据库设计往往不可能一蹴而就,只能反复探寻并逐步求精,这是一个复杂的过程,也是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。下面给出了20个数据库设计最佳实践,当然,所谓最佳,还是要看它是否适合你的程序。一起来了解了解吧。
- 使用明确、统一的标明和列名,例如 School, SchoolCourse, CourceID。
- 数据表名使用单数而不是复数,例如 StudentCourse,而不是StudentCourses。
- 数据表名不要使用空格。
- 数据表名不要使用不必要的前缀或者后缀,例如使用School,而不是TblSchool,或者SchoolTable等等。
- 数据库中的密码要加密,到应用中再解密。 (其实就是散列存储、单向加密)
- 使用整数作为ID字段,也许现在没有这个必要,但是将来需要,例如关联表,索引等等。
- 使用整数字段做索引,否则会带来很大的性能问题 。
- 使用 bit 作为布尔字段,使用整数或者varcha是浪费。同时,这类字段应该以“Is”开头。
- 要经过认证才能访问数据库,不要给每一个用户管理员权限。
- 尽量避免使用“select *”,而使用“select [required_column_list]”以获得更好的性能。
- 假如程序代码比较复杂,使用ORM框架,例如hibernate,iBatis。ORM框架的性能问题可以通过详细的配置去解决。
- 分割不常使用的数据表到不同的物理存储以获得更好的性能。
- 对于关键数据库,使用安全备份系统,例如集群,同步等等。
- 使用外键,非空等限制来保证数据的完整性,不要把所有的东西都扔给程序。
- 缺乏数据库文档是致命的。你应该为你的数据库设计写文档,包括触发器、存储过程和其他脚本。
- 对于经常使用的查询和大型数据表,要使用索引。数据分析工具可以帮助你决定如何建立索引。
- 数据库服务器和网页服务器应该放在不同的机器上。这回提高安全性,并减轻CPU压力。
- Image和blob字段不应该定义在常用的数据表中,否则会影响性能。
- 范式(Normalization)要按照要求使用以提高性能。Normalization做的不够会导致数据冗余,而过度Normalization 会导致太多的join和数据表,这两种情况都会影响性能。
- 多花点时间在数据库设计上,否则你将来会付出加倍的时间来偿还。(oschina.net虫虫译)
英文原址:javacodegeeks.com

随着互联网的普及和应用场景的不断增加,数据库设计成为了极其重要的一个问题。而在数据库设计中,冗余字段是一个很重要的问题。冗余字段是指在设计数据库时,出现了重复或不必要的字段。虽然冗余字段可以在一定程度上提高查询效率和速度,但同时也会浪费存储空间和加大维护难度,甚至会影响数据的一致性和安全性。因此,在PHP编程中,应该遵循一定的最佳实践,来解决冗余字段带来的问

利用MongoDB技术开发中遇到的数据库设计问题的解决方案探究摘要:随着大数据和云计算的快速发展,数据库设计在软件开发中显得尤为重要。本文将讨论开发过程中常遇到的数据库设计问题,并通过具体代码示例来介绍MongoDB的解决方案。引言:在软件开发过程中,数据库设计是一个关键的环节。传统的关系型数据库在处理大规模数据时存在一些性能和可扩展性的问题。而MongoD

Golang是一种由Google开发的编程语言,其使用简单、性能优越和跨平台特性使得它在现代Web应用程序开发中越来越受到欢迎。在Web应用程序开发中,数据库设计是非常重要的一部分。在这篇文章中,我们将介绍如何使用Golang开发Web应用程序时进行数据库设计实践。选择数据库首先,我们需要选择一个合适的数据库。Golang支持多种数据库,例如MySQL、Po

PHP和MySQL是一对强大的组合,具有广泛的应用。在互联网行业,PHP和MySQL已经成为了技术栈的标配,大量的网站、Web应用、后台管理系统等应用都采用了这对组合。本文将探讨PHP和MySQL数据库的设计与应用,并介绍一些最佳实践。一、PHP和MySQL数据库的优势PHP是一种开源的、跨平台的、服务端的Web编程语言,拥有广泛的应用场景。MySQL是一种

步骤:1、需求收集和分析,得到数据字典和数据流图;2、对用户需求综合、归纳与抽象,形成概念模型;3、将概念结构转换为数据模型;4、设计数据库的物理结构;5、建立数据库,编制与调试应用程序,组织数据入库;6、对数据库系统进行评价、调整与修改。

MySQL复合主键在数据库设计中的应用详解MySQL复合主键是指由多个字段组成的主键,通过组合这些字段的值来唯一标识一条记录。在数据库设计中,复合主键的应用非常广泛,特别是在需要唯一标识某个实体的情况下。本文将详细介绍MySQL复合主键的概念、设计原则以及具体的代码示例。一、MySQL复合主键的概念在MySQL中,主键是用来唯一标识表中的每一行数据的字段

Golang语言特性解读:ORM框架与数据库设计引言:近年来,随着云计算的发展和大数据的兴起,数据库的应用越来越广泛。为了更方便地操作数据库,ORM(对象关系映射)框架应运而生。而Golang作为一门现代化的编程语言,具有强大的并发能力和高效的性能。本文将介绍Golang语言中使用ORM框架进行数据库设计的方法,并附上相关的代码示例。一、ORM框架ORM(O

如何在PHP中实现商品多规格SKU的数据库设计在电商平台中,商品规格是一个非常重要的概念。商品规格可以理解为商品的不同属性和特征,例如尺寸、颜色、重量等。在实际应用中,针对不同的规格,我们往往需要为每一种组合设置不同的价格、库存和图片等信息。这就需要我们设计一个合适的数据库结构来存储和管理商品的规格及其相关信息。本文将介绍如何在PHP中实现商品多规格SKU的


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

Notepad++7.3.1
Easy-to-use and free code editor

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
