数据库设计中体现继承关系的三种方式

  • 整个父类的所有子类一张表

    优势:数据库操作简单

    问题:空值大量存在,数据表字段膨胀,维护修改困难

  • 每个具体类一张表

    优势:简化数据库访问,对多态关系的支持有限,当查询涉及到类继承结构时通常需要发起SQL UNION查询

    问题:放弃了继承,否认了对象的共性部分,查询统计通用属性需要处理多个表,也无法处理关联引用的外键约束(其它实体无法外键引用多个不同实体)

  • 每个类对应一张表,父类与子类通过外键关联

    优势:通用,面向对象,由于 结构与对象继承一致,几乎可以应对处理所有可能的情况,对于实体间的多态关系提供了很好的支持

    问题:实例化子类实例时需要一个或多个表的关联操作。在深层次的继承结构中,这会导致性能很低。跨数据库抽象,查询写入需要关联多个表操作,可以通过视图简化查询操作




打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据