0

我希望在休眠中实现一个在线库。这是我的 sql 架构:

sql模式

在书籍和编程书籍之间,我正在考虑对每个加入的子类使用类型表的休眠继承。我以这种方式设计了 sql 模式,因为我看不到在 10 个表中重复相同的列的意义。也许我需要添加一个更常见的列,我不想在 10 个表中这样做。但这意味着每当某处需要一本书时,所有子表之间都会建立一个巨大的连接(我只有 2 个,但我可以有 50 种书籍类型!!!)。例如,如果我有一家网上商店,同样的情况也适用:我会有产品、电视、笔记本电脑、电话等......)。

什么设计可以帮助我避免这种行为?

我的想法是:

  • 我可以复制所有子表中的所有列,因此,根本不使用继承,将它们视为不同的实体。这里唯一的事情是我将不得不绑定其他表(作者等)的每个特定书表
  • 我可以避免使用继承,保留当前的 ​​sql 模式但使用单向关联( ProgrammingBook 有 Book 等)

你们推荐什么选择?

亲切的问候,

4

1 回答 1

0

根据经验,在 Hibernate 中使用继承时,您应该更喜欢 Table per Hierarchy 的观点,并带有鉴别器。

这是一个可以帮助您选择答案的线程:您如何表示数据库中的继承?

于 2016-11-16T12:29:44.043 回答