【问题标题】:In the EER(Extended ER Diagram), can entity have more than one subclasses?在EER(Extended ER Diagram)中,实体可以有多个子类吗?
【发布时间】:2012-11-01 19:03:49
【问题描述】:

在我目前正在做的问题中,给出了两个令人困惑的句子:

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

这两个是同一个问题。我必须通过使用子类或如何来表示它吗?

非常感谢。

【问题讨论】:

    标签: sql database database-design entity-relationship diagram


    【解决方案1】:

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

    您可以创建具有四个子类 House、Appartment、PropertyForRent 和 PropertyForSale 的 Property 实体。

    房产不能既是房子又是公寓。因此,使用一个带有 d 的圆圈来表示它是不相交的。物业可能既可供出租又可供出售。使用带有 o 的圆圈表示它可能重叠。

    这在Advanced Data Modelling 的第 443 页上有描述,另一个例子可以在this presentation 的第 30 页找到。

    【讨论】:

    • 感谢您的回答。就我而言,有两种不同类型的子类,即房屋和公寓,以及出租和出售。我是否只需要像您提供的示例那样创建四个不同的子类?
    【解决方案2】:

    Sjoerd 的回答是正确的。

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

    如果您对设计实现子类的 SQL 表感兴趣,请在 SO 中查找这些主题或它们的标签:

    Single Table Inheritance
    Class Table Inheritance
    Shared Primary Key
    

    【讨论】:

      猜你喜欢
      • 2021-12-30
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多