37 泛化实现(上):泛化的数据库设计(单表 vs 多表策略)
你好,欢迎来到第 37 讲。
在完成了对泛化建模的“道”(适用场景)和“法”(权衡抉择)的探讨之后,我们终于来到了“术”的层面——实现。
假设经过审慎的权衡,我们最终决定在领域模型中使用**泛化(继承)**来表达我们的业务概念。现在,一个非常具体且棘手的问题摆在了我们面前:
这个在代码中看起来很优雅的继承树,应该如何被持久化到关系型数据库中?
关系型数据库的二维表结构,与面向对象语言的继承层级结构,存在着天然的“阻抗不匹配”。如何跨越这道鸿沟,是所有 ORM 框架(如 JPA/Hibernate)都需要解决的核心难题之一,也是我们作为领域建模者,必须理解和掌握的知识。
本讲,我们将聚焦于泛化实现的数据库设计层面。我将为你详细介绍业界最主流的三种继承关系映射策略,并深入分析它们各自的优缺点和适用场景。这三种策略分别是:
- 单表继承(Single Table Inheritance)
- 类表继承(Class Table Inheritance)
- 具体表继承(Concrete Table Inheritance)
理解了它们,你就能在项目实践中,为你的泛化模型,选择最合适的持久化方案。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



