现在我正在使用每子类一个表的方法来建模我的数据。我的层次结构简化为:
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 */
}
所以它做了三个外部连接,在那里我获取抽象类型的实例(实际上是十二个)。我昨天意识到,ConcreteTypeA1和ConcreteType A2确实有相同的额外数据,它们只是表现不同,所以我想做的是通过将这两个类填充到一个表中并使用鉴别器列来减少联接的数量。我怎样才能做到这一点?
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 */
}