数据模型设计

工作中soa之后,作为上层业务渠道,很少接触数据模型设计了,今天听了一节课,记录下。

1、概念模型-逻辑模型-物理模型
这个顺序从大学就开始教,实际上在很多人设计时,并没有严格按照这个顺序,直接到物理模型设计,导致后续模型的频繁改动,或者业务信息缺失。

2、概念模型
从业务逻辑出发,分析出主数据模型,主要是初步搞清楚业务中涉及的域内、域外实体,以及他们之间的大致关系

3、逻辑设计
从概念模型出发,进一步分析实体之间的关系,主要实体,次要扩展实体,过程实体,这些数据是需要分清楚重要性的,为后续物理设计提供参考。
实体关系,业务分析是根本,可扩展是设计原则,包括新增实体、新增属性、实体关系变迁,都要充分从业务分析的角度出发进行不断追问。一个的方式就是多参考业内的模型设计。

关于冗余:
实体之间建立关系时,会考虑到业务中的的数据操作需求,分析出操作表的张数、次数、数据量,在性能要求苛刻的情况下,可以适当的冗余设计(比如需要根据机构ID关联查询一个机构的机构名称,可以在查询主表中冗余一个机构名称),以减少关联查询。


4、物理设计
扩展性:
大字段
预留字段,适用于大多数场景,但不利于后期维护,数据量较大。
通用扩展
不能关联查询,一般是ID,参数,参数值的方式,逻辑列存储的风格。

性能:
索引、分库分表(分库分表位需要业务全局一致,以便与后续业务发展)
缓存:分布式、本地多级缓存。

猜你喜欢

转载自ch-space.iteye.com/blog/1847491
今日推荐