我有遵循复合模式关系的类,我需要为其创建 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,正如数据库中的后继承所提供的那样。但是,复合模式在本质上是递归结构时会带来额外的复杂性,因此,模式可能会极大地影响选择/插入查询的性能。
如果可能,请讨论您的解决方案在可扩展性和性能方面的优缺点。