📚 Inheritance — 继承
v1.0.0映射选择器 选择正确的 ORM 继承策略 —— Single Table Inheritance (STI)、Class Table Inheritance(joined table / Multi-Table Inheritance)或 Concrete T...
详细分析 ▾
运行时依赖
版本
- inheritance-mapping-selector 技能的首次发布。 - 根据具体 OO 继承层次与 schema 需求,引导用户选择最优 ORM 继承策略(STI、CTI 或 Concrete)。 - 从六个关键维度评估权衡:查询 join、存储效率、约束可实施性、重构影响等。 - 将建议映射为 Java(Hibernate/JPA)、Rails 与 Django 的惯用 ORM 用法。 - 生成决策记录,含 schema 草图与 ORM 配置片段。 - 面向为 OO 层次设计或重构数据库持久化的软件架构师与工程师。
安装命令
点击复制技能文档
---
name: inheritance-mapping-selector
description: |
为任何需要持久化到关系数据库的 OO 继承体系,选择正确的 ORM 继承策略——Single Table Inheritance(STI)、Class Table Inheritance(joined table / Multi-Table Inheritance)或 Concrete Table Inheritance(table per class)。
在以下提问时使用:“我该用哪种继承映射?”、“单表 vs 连接表继承”、“STI vs CTI vs table per class”、“Hibernate 继承策略 SINGLE_TABLE vs JOINED vs TABLE_PER_CLASS”、“@Inheritance JPA”、“Rails STI vs multi-table inheritance”、“Django model inheritance type”、“如何在数据库中映射继承”、“数据库设计中的继承”、“鉴别列继承”、“ORM 多态查询性能”、“多态表设计”、“table per class 继承权衡”、“joined 继承 vs 单表”、“继承模式设计”。
适用于新 schema 设计、ORM 配置或遗留 schema 重构。基于六个权衡维度为策略指路:多态读时是否 join、列空间浪费、FK 约束可执行性、即席查询可读性、重构影响、多态查询成本。识别何时因分支差异需用 Inheritance Mappers 混合策略。将策略映射为惯用 ORM 配置:Hibernate/JPA @Inheritance(SINGLE_TABLE/JOINED/TABLE_PER_CLASS)、Rails STI type 列、Django Multi-Table Inheritance vs abstract base。输出继承映射决策记录,含 schema 草图与 ORM 配置片段。
version: 1.0.0
homepage: https://github.com/bookforge-ai/bookforge-skills/tree/main/books/patterns-of-enterprise-application-architecture/skills/inheritance-mapping-selector
metadata: {"openclaw":{"emoji":"📚","homepage":"https://github.com/bookforge-ai/bookforge-skills"}}
status: draft
source-books:
- id: patterns-of-enterprise-application-architecture
- type: document
@Inheritance 策略注解"
- "决定 Rails 用 STI 还是手动多表方案"
- "发现 STI 表过宽、NULL 过多"
- "发现 CTI join 在高读接口造成性能问题"
- "重构未刻意设计继承的遗留 schema"
- "记录持久化继承的架构决策"
prerequisites: []
not_for:
- "选择数据源访问模式(Active Record vs Data Mapper)——见
data-source-pattern-selector" - "完整结构映射模式(关联、集合、嵌入值)——见
object-relational-structural-mapping-guide" - "查询优化或索引设计——见
sql-query-optimizer"