数据库设计 最佳实践_20个数据库设计最佳实践

数据库设计 最佳实践

  1. 为表和列使用定义明确且一致的名称(例如School,StudentCourse,CourseID…)。
  2. 表名使用单数形式(即使用StudentCourse代替StudentCourses)。 表代表实体的集合,不需要复数名称。
  3. 表名不要使用空格。 否则,您将不得不使用“ {”,“ [”,“”等字符来定义表格(即,要访问表格“学生课程”,您将编写“学生课程”。StudentCourse更好)。
  4. 不要为表名使用不必要的前缀或后缀(即使用School代替TblSchool,SchoolTable等)。
  5. 为了安全起见,请保持密码加密。 需要时在应用程序中解密它们。
  6. 对所有表使用整数id字段。 如果暂时不需要id,则将来可能需要(对于关联表,索引…)。
  7. 选择具有整数数据类型(或其变体)的列进行索引。 varchar列索引将导致性能问题。
  8. 将位字段用于布尔值。 使用整数或varchar不必要地消耗了存储空间。 还要以“ Is”开头这些列名称。
  9. 提供数据库访问的身份验证。 不要给每个用户管理员角色。
  10. 除非确实需要,否则请避免使用“选择*”查询。 使用“选择[required_columns_list]”可获得更好的性能。
  11. 如果应用程序代码足够大,则使用ORM(对象关系映射)框架(即,Hibernate,iBatis…)。 ORM框架的性能问题可以通过详细的配置参数来解决。
  12. 将大型和未使用/很少使用的表/表部分分区到不同的物理存储中,以提高查询性能。
  13. 对于大型,敏感且任务批评的数据库系统,请使用灾难恢复和安全服务,例如故障转移群集,自动备份,复制等。
  14. 使用约束(外键,检查,不为null…)以确保数据完整性。 不要完全控制应用程序代码。
  15. 缺乏数据库文档是邪恶的。 使用ER模式和说明记录数据库设计。 还要为触发器,存储过程和其他脚本编写注释行。
  16. 将索引用于大表上的常用查询。 分析器工具可用于确定在哪里定义索引。 对于检索一定范围的行的查询,聚集索引通常更好。 对于点查询,非​​聚集索引通常更好。
  17. 数据库服务器和Web服务器必须放置在不同的计算机上。 这将提供更高的安全性(攻击者无法直接访问数据),并且由于减少了请求数量和进程使用率,服务器的CPU和内存性能将更好。
  18. 由于性能问题,不能在经常查询的表中定义图像和Blob数据列。 这些数据必须放在单独的表中,并且它们的指针可以在查询表中使用。
  19. 必须根据需要使用规范化,以优化性能。 规范化不足会导致数据重复过多,规范化过度会导致太多表之间的联接过多。 它们都将获得较差的性能。
  20. 根据需要花费大量时间进行数据库建模和设计。 否则,节省(!)设计时间将导致(节省(!)设计时间)* 10/100/1000维护和重新设计时间。

参考:来自JCG合作伙伴的 20项数据库设计最佳实践   Cagdas Basaraner在CodeBuild博客上。


翻译自: https://www.javacodegeeks.com/2012/02/20-database-design-best-practices.html

数据库设计 最佳实践

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值