zoukankan      html  css  js  c++  java
  • 数据库设计实践指南

      数据库设计看上去很简单,但是如果不经意随意设计,可能会为日后维护拓展或性能方面埋下祸根。以下是一些设计数据库的最佳实践指南:

    1. 为所有数据表都使用整数 id 作为字段,如果现在不需要 id,也许将来会需要,比如关联表或索引等

    2. 选择整数类型的字段作为索引varchar字段索引会引起性能问题。

    3. 使用 bit 字段作为布尔值,使用整数 interger 或 varchar 作为布尔值字段会增加不必要的存储消耗,这些布尔字段名称以“IS”开始

    4. 避免使用“select *”,使用“select 字段名”有更好的性能。如果必须使用,需要确认必要性。

    5. 使用约束(外键 或 not null)维持数据完整一致性,不要将所有控制器给应用代码

    5.密码必须加密保存,只有需要时在应用程序中解密。
    9.提供数据库的授权访问方式,不要将管理员角色给每个人。
    11.只有应用系统有一定规模才使用ORM(对象和关系数据库映射)框架如Hibernate iBatis等,这些ORM框架性能需要很详细的配置参数来调校。
    12. 将大的很少用使用的表切分成多个表,存储到不同物理存储上,这样能获得好的性能。
    13.对于大的 重要的数据库系统,使用失败恢复集群 自动备份 复制等方式。
    15.缺乏数据库文档是邪恶的。
    16.对于频繁查询使用索引,分析工具可以帮助你决定哪些需要索引。
    17.数据库服务器和Web服务器器放在不同的机器上。这样有更好性能。
    18.不要在一个频繁查询的表里定义图片和blob数据类型。这些特殊数据需要放在单独不同的表中。
    19.规范化(Normalisation)有助于性能提升,非规范化会引起数据冗余,过于规范化会引入太多的表,两者都会导致性能问题。

    名称方面:

     

    1. 使用完整的一致的数据表名称和字段名,如:School, StudentCourse, CourseID
    2.数据表名称使用单数,比如使用StudentCourse 而不是StudentCourses,数据表代表实体的一个集合,因此没有必要使用复数名称。
    3. 数据表名称不要使用空格,比如StudentCourse 比Student Course更好。
    4.数据表名称不要使用不必要的前缀和后缀。比如TblSchool, SchoolTable 都不如School 好。

    。。20.如果需要花费时间进行数据库建模设计,节省设计时间将导致维护时间过长或重新设计时间。

  • 相关阅读:
    2-2. 线性池技术优化
    2-1. 基于OpenSSL的传输子系统实现
    1-4. 嵌入式web服务器BOA的移植及应用
    1-3. Linux下移动图像监测系统——motion的移植及应用
    1-2. 摄像头驱动的使能配置、V4L2编程接口的设计应用
    1-1. OSS/ALSA 声卡的驱动与配置和 Madplay 嵌入式播放器的移植
    嵌入式Linux开发环境搭建,问题ping、nfs的解决
    并发服务器的设计
    WPF 子类访问主类(父类)MainWindow的属性和方法
    stm32 读取多路SDADC
  • 原文地址:https://www.cnblogs.com/zhangchaoran/p/6946418.html
Copyright © 2011-2022 走看看