PostgreSQL:如何判断继承表Payments中记录所属的子表?
问题解答
在大多数ORM框架(如Hibernate、Entity Framework)或数据库原生的表继承实现(如PostgreSQL的INHERITS特性)中,不存在能直接标识父表Payments记录所属子表的内置元数据——至少不会在Payments表结构中直接提供这类信息。
具体说明:
- 若采用ORM的单表继承模式,所有子表数据会存在父表中,ORM会自行维护鉴别列,但你已明确排除这类方案;
- 若采用数据库原生表继承(比如PostgreSQL的继承机制),父表本身不会存储记录所属子表的标识字段,必须通过关联查询或检查子表是否存在对应记录来判断归属;
- 若采用Joined Table Inheritance(关联表继承),父表与子表通过外键关联,同样没有内置元数据能直接从父表记录判断其所属子表。
总结:不使用关联查询、不添加额外鉴别列的前提下,无法直接从Payments表的记录本身判断它属于哪个子表。数据库或ORM都不会默认提供这类内置标识。
内容的提问来源于stack exchange,提问作者Salih Kavaf
相关产品推荐
相关产品推荐

