2012-11-13 87 views
0

在我目前做的问题说出了两个令人困惑的句子:在EER(扩展ER图)中,实体是否可以有多个子类?

1. A property can be either be a house or an apartment. For a house it records ..bula bula 
    For an apartment, it records .. bula bula 

2. A property can be either for sale or rent, or for both. If a property is for sale, it 
    records .. bula bula. If the property is for rent, it records .. bula bula 

这两个是同样的问题。我必须使用子类来表示它吗?

非常感谢。

回答

1

是的,一个实体可以有多个子类和多个超类。教职员工和学生助理都可能是员工的子类,学生助理可能是员工和学生的子类。

您可以使用House,Appartment,PropertyForRent和PropertyForSale四个子类创建一个Property实体。

属性可能不是房子和公寓。因此,在其中使用一个带有d的圆圈来指示它是不相交的。财产可能是出租和出售。使用一个圆圈,其中包含以指示它可能重叠。

Disjoint relation in EER diagram

这在Advanced Data Modelling 443页上所描述的,和另一示例可以的this presentation 30页上找到。

+0

谢谢您的回答。就我而言,有两种不同类型的小类,即房屋和公寓,以及租赁和销售。我是否需要创建四个不同的子类,例如您提供的子类? –

0

Sjoerd的回答是正确的。

ER建模告诉你如何绘制子类,但它不告诉你如何实现它们。也不应该。

如果你有兴趣在设计实现子类SQL表,查找这些话题,或自己的标签SO:

Single Table Inheritance 
Class Table Inheritance 
Shared Primary Key