大家说说工作中带继承关系的ORM一般都用那种方式实现?'Table per subclass' or 'Table per class hierarchy'
shuishou119800
2009-12-21
对于有父子结构的PO类,在映射到关系库时一般都会面临两种选择:'Table per subclass'每个类独自一张表 和 'Table per class hierarchy'父子类共用一张表。
第一种在实际查询时会用到左连接,对性能消耗相对较大,相比之下第二种方式则属于单表查询,开销较小。 可从实体建模方面看,第一种方式实体的任务更加清晰,而第二种方式则要引入子对象的标识字段,而这个字段在实体建模时是冗余的,且由于各子类可能存在自己独有的字段而再次造成表字段的冗余。因此造成了该表关系结构的不清晰。 自己在工作中发现公司系统的设计全部都是用的'Table per subclass'结构。大家对这两种实现有没有什么看法,一起讨论讨论 |