我有一个由6个属性组成的对象,其中5个属性唯一定义(不是派生)第6个属性:
public Class MyClass {
private FirstAttribute first;
private SecondAttribute second;
private ThirdAttribute third;
private FourthAttributeEnum fourth;
private FifthAttributeEnum fifth;
private SixthAttribute uniquelyDefined;
}
我需要在关系数据库中存储此类的对象。对于前5个属性的所有唯一组合,第六个值的变化(对于不同的组合,它可能是相同的,但是没有关系,所以第六个不能是主键)。
作为主键,我定义了另一个String,它结合了前5个属性的String表示。
我正在寻找这种情况的更好实现。重组这门课的最佳方法是什么?
答案 0 :(得分:0)
作为主键,我定义了另一个组合String的String 前5个属性的表示。
这可能是代理主键比自然主键更受欢迎的罕见情况之一。 “兆字节长”主键并不是一个好主意,因为它们通常用于整个应用程序(其他表,实体内存表示等)。由于索引将增长,您还将减慢查找操作的速度。表读数也可能因为行太大而放慢速度。