当前位置: 首页 > 编程笔记 >

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

臧增
2023-03-14
本文向大家介绍分享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.数据库服务器和网页服务器应该放在不同的机器上。这回提高安全性,并减轻html" target="_blank">CPU压力。
18.Image和blob字段不应该定义在常用的数据表中,否则会影响性能
19.范式(Normalization)要按照要求使用以提高性能。Normalization做的不够会导致数据冗余,而过度Normalization 会导致太多的join和数据表,这两种情况都会影响性能。
20.多花点时间在数据库设计上,否则你将来会付出加倍的时间来偿还。

英文原址:javacodegeeks.com

 类似资料:
  • 本文向大家介绍webpack配置的最佳实践分享,包括了webpack配置的最佳实践分享的使用技巧和注意事项,需要的朋友参考一下 本文主要介绍了关于webpack配置的最佳实践,本文分享的实践具有以下的优势: 使用happypack提升打包速度。 使用MD5 hash可以生成文件版本,进行版本控制 在非单页面的系统中支持多个入口的配置 模板中可以利用htmlplugin输出一些配置性的信息 支持de

  • 我开始创建一个系统,我(作为目前唯一的用户)将加载一个动态创建的PHP页面,该页面具有

  • 我正在开发一个非常繁忙的Web服务,它应该每秒收到数千个请求。我希望每个请求都会更新一个计数器字段。我该怎么做?将计数器保存在数据库中非常重要,因此在服务器死亡的情况下,我不会丢失信息。我已经尝试了以下代码,但这将是一个巨大的瓶颈,每秒数千个请求。你会怎么做?

  • 我是Cassandra的新手,正在寻找一个关于如何为具有以下一般结构的数据建模的最佳实践: 对于不同的用户,附加的数据字段不一定相同(字段的名称或这些字段的类型) 示例(csv格式:) 我考虑过的几个选择: null 每个User_id创建Keyspace 每个关键字空间创建表“data” 备注: null null 创建多个keyspaces(例如“x”个keyspaces),每个keyspac

  • 问题内容: 我出于好奇而问这个问题。基本上,我的问题是,当您拥有一个需要行条目才能具有像标志作用的事物的数据库时,最佳实践是什么?一个很好的例子就是堆栈溢出的标志,或者是bugzilla中的操作系统字段。可以为给定条目设置标志的任何子集。 通常,我会进行c和c ++的工作,因此我的直觉反应是将无符号整数字段用作一组可以翻转的位…但是我知道,由于多种原因,这不是一个好的解决方案。其中最明显的是可伸缩

  • 目前需求就是将mysql的表结构及数据迁移到pgsql. 我用的方案是使用navicate 同步数据及结构到pg, 有如下问题: mysql中的索引直接丢失了 不知道为啥一直报错表找不到 对于默认值 pgsql也丢失了 请问大家有什么好的实践吗? 我考虑的是 直接使用数据库迁移 将数据库脚本转化为pg的语法