当前位置 > 主页 > 行业简报 >


20个数据库设计最佳实践

2016-01-07 09:25

  数据库设计看上去很简单,但是如果不经意随意设计,可能会为日后维护拓展或性能方面埋下祸根。以下是江苏万和小编为大家呈现的20个设计数据库的最佳实践指南:


  1. 使用完整的一致的数据表名称和字段名,如:School, StudentCourse, CourseID


  2.数据表名称使用单数,比如使用StudentCourse 而不是StudentCourses,数据表代表实体的一个集合,因此没有必要使用复数名称。


  3. 数据表名称不要使用空格,比如StudentCourse 比Student Course更好。


  4.数据表名称不要使用不必要的前缀和后缀。比如TblSchool, SchoolTable 都不如School 好。


  5.密码必须加密保存,只有需要时在应用程序中解密。


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


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


  8.使用bit字段作为布尔值,使用整数Interger或varchar作为布尔值字段会增加不必要的存储消耗,这些布尔字段名称以"Is"开始。


  9.提供数据库的授权访问方式,不要将管理员角色给每个人。


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


  11.只有应用系统有一定规模才使用ORM(对象和关系数据库映射)框架如Hibernate iBatis等,这些ORM框架性能需要很详细的配置参数来调校。


  12. 将大的很少用使用的表切分成多个表,存储到不同物理存储上,这样能获得好的性能。


  13.对于大的 重要的数据库系统,使用失败恢复集群 自动备份 复制等方式。


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


  15.缺乏数据库文档是邪恶的。


  16.对于频繁查询使用索引,分析工具可以帮助你决定哪些需要索引。


  17.数据库服务器和Web服务器器放在不同的机器上。这样有更好性能。


  18.不要在一个频繁查询的表里定义图片和blob数据类型。这些特殊数据需要放在单独不同的表中。


  19.规范化(Normalisation)有助于性能提升,非规范化会引起数据冗余,过于规范化会引入太多的表,两者都会导致性能问题。


  20.如果需要花费时间进行数据库建模设计,节省设计时间将导致维护时间过长或重新设计时间。  文字整理:江苏万和计算机培训中心


最近开班 more>
  • 全栈开发
  • 前端基础班
  • 软件测试
  • Java大数据开发工程师
  • 云原生精英班
  • 开发课程基础班第四期
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第一期
  • Java Web UI Python
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • vip班
  • 考试计划
  • 脱产班
  • 脱产班
  • 脱产班
  • 双休班
  • 双休班
  • 双休班
  • 双休班
  • 业余班
  • 业余班
  • 10月16日
  • 9月23日
  • 9月2日
  • 9月30日
  • 8月26日
  • 10月8日
  • 9月23日
  • 9月16日
  • 9月9日
  • 随时开课
  • 9月21日
  • 10月17日
  • 9月18日
  • 9月2日
  • 11月2日
  • 10月26日
  • 9月7日
  • ——
  • 随时开课
  • 9月26日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入