【发布时间】:2011-09-06 08:46:09
【问题描述】:
现在我正在使用每个子类的表方法来对我的数据进行建模。我的层次结构的简化是:
abstract class Abstract {
/* common data stored in abstract */
}
class ConcreteTypeA1 extends Abstract {
/* extra data stored in concrete_type_a_1 */
}
class ConcreteTypeA2 extends Abstract {
/* extra data stored in concrete_type_a_2 */
}
class ConcreteTypeB extends Abstract {
/* extra data stored in concrete_type_b */
}
所以它做了三个外部连接,我在其中抓取 Abstract 类型的实例(实际上是十二个)。我昨天意识到 ConcreteTypeA1 和 ConcreteTypeA2 确实有相同的额外数据,它们只是表现不同,所以我想做的是通过将这两个类填充到一个表中并使用鉴别列来减少连接的数量。我如何/我可以做到这一点?
class Abstract {
/* common data stored in abstract */
}
abstract class ConcreteTypeA extends Abstract {
/* extra data stored in abstract_type_a */
}
class ConcreteTypeA1 extends ConcreteTypeA {
/* just behavior, no extra data, uses data in abstract_type_a */
}
class ConcreteTypeA2 extends ConcreteTypeA {
/* just behavior, no extra data, uses data in abstract_type_a */
}
class ConcreteTypeB extends Abstract {
/* extra data stored in concrete_type_b */
}
【问题讨论】: