数据库设计教程——物理模型设计模式

2014-10-01 15:32:07

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、实体分割模式(一对一)

    针对实体表进行字段分割处理。

    一般是将一张字段较多的实体表如产品实体、订单实体等,将若干字段分割出来,

独立设计一张一对一从表。原则是:

    当查询实体集合时,一般不会用到的字段可以进行分割,如统计,详细描述等。


    基于主体进行一对一形式的分割。如:

    主从-1.jpg

    产品是主表,产品统计是从表。这些字段原先是设计在主表的,为了优化分割到从表中。

从表可以设计外键,也可以不设计,一般为一对一联系,即从表的主键值为主表的主键值。

二、继承扩展模式(一对一)

   继承扩展同样是一对一的形式,但是业务上和主从扩展不一样。

   继承扩展适合抽象实体和具体实体的扩展。


   比如抽象实体参与者和具体实体员工、组织、职位等的关联关系。

   参与者(Craft6.cn 颜超敏).jpg

   设计时,可以将子表的主键设置为,既是主键又是外键。

数据库设计教程——物理模型设计模式

三、主从扩展模式(一对多)

   这种是最为常见的模式,即主表和从表是一对多关系。比如对于论坛系统,

帖子和回复,则是明显的主从扩展模式。

   帖子和回复(Craft6.cn 颜超敏).jpg

   表示一张帖子可以有N个回复。

   设计是,从表是外键关联主表,一般外键字段设置为非空,级联约束则根据实际需要而

设置,如级联删除。

四、多对多转换

   当两个实体或多个实体之间存在多对多关联时,实际设计数据库是设计一张

多对多联系表,该表有独立的主键,但是外键关联各个实体表。

   这张表就是将实体之间的多对多联系转换为一对多联系。

   

   对于数据库范式,两个实体的多对多联系转换为两张一对多表是符合范式要求的,

但对于多个实体的公共的多对多联系转换为一张公共的联系表(超过2个外键),则

不符合第五范式,并且这样设计也容易混乱,所以这种情况会对实体两两分别设计

一对多联系表。


   即将下图的左边的联系 改成 右边的联系结构。

多实体联系(Craft6.cn 颜超敏).jpg

五、实体属性值扩展(EAV)

    如果要对一个实体进行信息扩展,可以增加一些字段,但这样在系统运营时,则比较麻烦。

需要修改数据表,修改代码等。

    所以对于一些非核心属性,如描述性的信息,可以通过实体属性值扩展模式处理,即EAV模型。

    此模式可以参考笔者分享的方案《Craft6.cn 电商研发方案 —— EAV实体属性值模型分析和设计》


可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


数据库设计教程——物理模型设计模式

数据库物理模型,设计模式,数据库设计模式,设计模型,实体分割,继承扩展,主从扩展,多对多转换,实体属性值扩展,EAV

   将数据库物理模型设计中常见的一些设计模式进行总结,

包括:

   1、实体分割;

   2、继承扩展

   3、主从扩展

   4、多对多转换

   5、实体属性值扩展

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件