我的类遵循复合模式关系,我需要为Oracle数据库创建关系数据模型。 (java)类如下 -
class AbstractEmployee {
int employeeId;
}
class Employee extends AbstractEmployee {
Date joiningDate;
}
class Supervisor extends AbstractEmployee {
List<AbstractEmployee> directs;
int officeLocationId;
}
显然,有些属性在所有类中共享,并且还有其他属性,这些属性特定于每个类。为上述场景创建sql表的最佳方法是什么?
我可以看到有不同的方法来处理层次结构,即此帖子提供的TPC,TPH和TPT - inheritance in databases。但是,复合模式在本质上是递归结构时会带来额外的复杂性,因此,选择/插入查询性能会受到模式的极大影响。
如果可能,请在可扩展性和性能方面讨论解决方案的优缺点。