3数据库设计模式:1.1主扩展模式
2006-09-06 11:11
253 查看
连载之2
原创:胖子刘(转载请注明出处及作者,谢谢。)
(一)主扩展模式
主扩展模式,通常用来将几个相似的对象的共有属性抽取出来,形成一个“公共属性表”;其余属性则分别形成“专有属性表”,且“公共属性表”与“专有属性表”都是“一对一”的关系。
“专有属性表”可以看作是对“公共属性表”的扩展,两者合在一起就是对一个特定对象的完整描述,故此得名“主扩展模式”。
举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“主扩展模式”这个概念来使用的,请大家注意)。
假设某公司包括如下6种类型的工作人员:采购员、营销员、库房管理员、收银员、财务人员和咨询专家,采用主扩展模式进行设计,如下图所示。
无论哪种类型的工作人员,都要访问公司的办公软件,所以都有“登陆代码”和“登录密码”;并且作为一般属性,“姓名”、“性别”、“身份证号”、“入职时间”、“离职时间”等属性,都与个人所从事的工作岗位无关,所以可以抽取出来作为公共属性,创建“公司员工”表。
很显然,公司委派员工采购哪些商品是“采购员”的专有属性,这是由公司的实际业务特点决定的。换句话说,公司不可能把采购任务放到“营销员”身上,也不可能放到“库房管理员”身上,“采购商品”属性就是“采购员”的专用属性。
“采购员”表的主键与“公司员工”表的主键是相同的,包括字段名称和字段的实际取值;“采购员”表的主键同时是“公司员工”表主键的外键。在PDM图里可以看到“采购员”表中的“员工ID”字段后面有一个“<pk,fk>”标记,这个标记就说明“员工ID”字段既是“采购员”表的主键,同时也是该表的外键。
“公司员工”表是主表,“采购员”表是扩展表,二者是“一对一”的关系,两个表的字段合起来就是对“采购员”这个对象的完整说明。同理,“公司员工”表和其他5个表之间也都分别构成了“一对一”的关系。
对于主表来说,从表既可以没有记录,也可以有唯一一条记录来对主表进行扩展说明,这就是“主扩展模式”。
相关文章推荐
- 数据库设计--主扩展模式(转)
- 数据库设计--主扩展模式(转)
- 设计模式之单例模式--扩展篇(多例模式)
- 设计模式之创建型模式―― 1.1 简单工厂模式
- [导入]数据库物理模型设计的其他模式之单表模式
- 数据库 -- 由数据库连接池引出的三种设计模式
- 《设计模式--基于C#的工程化实现及扩展》 Security Design Pattern 系列 1 公钥体系与分布式环境要求
- 文档型数据库设计模式-如何存储树形数据
- 数据库表扩展字段设计思路
- 数据库物理模型设计的其他模式之自联结模式
- 《模式——工程化实现及扩展》(设计模式C# 版)《原型模式 Prototype》——“自我检验" 参考答案
- 设计模式之1.1 再谈反射 以及java当中通过配置文件得到类名字,并生成对象的方法
- 数据库四种设计模式
- 用设计模式开发通用数据库操作器
- 设计模式在Java数据库编程中的运用(二)
- 可动态扩展的数据库模型设计
- 使用设计模式构建通用数据库访问类
- JAVA操作数据库方式与设计模式应用
- 使用设计模式构建通用数据库访问类
- 设计模式--基于C#的工厂化实现及扩展