Welcome

首页 / 软件开发 / .NET编程技术 / 对象继承结构到设计数据表方式谈

对象继承结构到设计数据表方式谈2011-11-30 博客园 YB引言

面向对象的三个特征: 封装(encapsulation), 继承(inheritance), 多态(polymorphic), 其中继承是我们三个特征中最重要的应该就是继承了.

我们在程序中可以很自然, 很方便的表达继承的关系. 但是针对这样的继承关系, 我们如何设计数据库呢?通常我们有三种方式:

1. 一个继承树映射到一个表(one inheritance tree mapping to one table)

这种方式是将拥有共同父类的所有的类都看做成一张表(包括父类), 然后所有的类的所有的属性取并集, 组成数据表的所有列.

如上图类的结构图, Vehicle是父类, 拥有两个属性Engine和wheel, 而子类Truck有属性Container, 子类Car有属性Acoustics.

数据表被映射成

类属性数据表字段
EngineEngine
WheelWheel
ContainerContianer
AcousticsAcoustics
优点: 结构简单, 在数据表操作层可以很方便的实现针对这三个对象的数据库的insert, update, delete.

缺点: 这样的设计数据表, 会有大量的数据冗余.