数据库设计与建模最佳实践

数据库设计与建模最佳实践

 

摘要:本文针对数据库设计中可读性、易维护性及性能的要求,在数据库对象命名、主键的设计、字段类型及长度设计等方面,总结出数据库设计和建模最佳实践。

关键词:数据库对象命名,主键的设计,字段类型及长度设计,最佳实践范例

1. 引言

在企业级应用中,数据库是重要的组成部分。同样,数据库设计也是设计工作的重中之重。好的数据库设计可以简化开发、降低维护成本,更可以提高系统性能。

在这篇文章里,我针对可读性、易维护性及性能等方面,总结出以下数据库设计和建模最佳实践。

2. 数据库对象命名

为对象命名并非一件轻松随意的工作,下面的指导有利于构建一个规范的命名体系。

2.1 中文拼音还是英文单词

中文拼音gzzbh是什么意思呢?如果改成worker_code即可一目了然。因为英文单词语意比较精确,可读性比中文拼音好,所以推荐用英文单词给对象命名。

2.2 单词间分隔

用下划线分隔多个单词。

由于Oracle等数据库的对象名称默认不区分大小写(可以用双引号来区分,但是会给开发造成不必要的麻烦),所以在编程开发中常用的驼式命名风格如:tableName不太适合给数据库对象命名,因为对象的名称是以TABLENAME形式存储的。为了增强可读性,单词之间最好用下划线分隔,如:tableName 最好书写为 table_name

2.3 避免使用关键字

用关键字命名对象会造成冲突。

如果一定用关键字命名对象,需要用双引号,如:id 命名为 "id"

避免关键字冲突的较好方案是增加前缀或者后缀, 这也是所有对象命名的推荐方案,如:用户编号"id" 改为更明确的user_id

2.4 单数还是复数

user还是users

child还是children

英文名词有单数和复数之分,那对象命名时怎么考虑呢?

几乎所有的表都存储1条以上的记录,按这个事实,表名称应该全用复数才对,考虑到英文名词的复数变化比较复杂, 全用复数会加大设计者的负担,并且容易出错,从简化工作考虑,对象命名统一用单数即可。

2.5 用简写还是全称

dept_id, u_id分别代表什么意思呢?

dept这个简写,一般情况下它是department的简写,而u_id的含义就不明确了。如果设计者把u_id改为user_id意义就明确了。

所以,除非是众所周知的简称,一般情况下最好用更明确的全称,不要让别人猜测命名的含义,因为可读性对系统的可维护性影响很大。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
什么是数据仓库呢?数据仓库是一个为数据分析而设计的企业级数据管理系统。数据仓库可集中、整合多个信息源的大量数据,借助数据仓库的分析能力,企业可从数据中获得宝贵的信息进而改进决策。同时,随着时间的推移,数据仓库中积累的大量历史数据对于数据科学家和业务分析师也是十分宝贵的。 数据仓库建模的意义是什么呢?如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用。 数据仓库建模的最终目的是什么呢?高性能:良好的数据模型能够帮助我们快速查询所需要的数据。低成本:良好的数据模型能减少重复计算,实现计算结果的复用,降低计算成本。高效率:良好的数据模型能极大的改善用户使用数据的体验,提高使用数据的效率。高质量:良好的数据模型能改善数据统计口径的混乱,减少计算错误的可能性。 本课程将基于理论和实践讲解数据仓库,包含基础知识:数据仓库建模方法论、数据仓库分层模型、数据仓库构建流程、事实表、维度表、指标体系、拉链表、维度模型等 ,基于真实电商业务作为实战,讲解电商数仓的整个构建过程,让大家在实战中理解和掌握数仓的理论知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值