• 智能AI问答!更聪明、更完整、原创作!
  • 一款基于GPT的超级AI机器人,可以回答问题、聊天、创作、写文案!

将基类映射到一张表,每个子类映射到一张表。这种方法适用于子类的属性和基类的属性都比较多的情况

发布于 2023-12-17 17:33:30

这种映射策略通常被称为“类表继承”(Class Table Inheritance),也有人称之为“每个具体类一张表”(Concrete Table Inheritance)。在这种映射策略中,每个类(包括基类和派生的子类)都有自己的数据库表。基类的表包含了所有实例共有的属性,而每个子类的表则只包含那些特定于该子类的属性。

这种方法的优点是:

  • 明确的数据模型:每个类的结构在数据库层面都得到了清晰的表示。
  • 数据完整性:由于属性不会被混合到一个单独的表中,因此可以更好地保持数据的完整性。
  • 灵活性:方便添加新的子类或者修改子类的结构,不会影响到基类或其他子类的表。

缺点包括:

  • 查询复杂性:获取一个子类的完整信息可能需要进行表的连接操作,这可能会影响查询性能。
  • 数据冗余:如果基类和子类都有自己的主键,那么在子类表中可能需要存储一个外键来引用基类表的主键。

在实现时,通常会在子类表中包含一个与基类表主键相同的外键列,以此来建立两者之间的关联。这样,当需要查询一个子类的所有属性时,可以通过连接基类表和子类表来实现。

0 条评论

发布
问题

在线
客服