我有枚举CarBrand
:
public enum CarBrand {
BMW, MERCEDES, VOLKSWAGEN, AUDI, FORD, OPEL
}
和枚举CarBodyType
:
public enum CarBodyType {
SEDAN, MINIVAN, VAN
}
他们之间的关系是多对多的。即一个汽车品牌可以有多个车身类型的变体,而一个车身类型有多个品牌。
如何用这些枚举在我的代码中定义这样的实体关系模型?
也许我需要将每个枚举中的字段作为另一个枚举参数化的集合?
public enum CarBrand {
BMW, MERCEDES, VOLKSWAGEN, AUDI, FORD, OPEL;
private Set<CarBodyType> bodyTypes;
public Set<CarBodyType> getBodyTypes() {
return bodyTypes;
}
public void setBodyTypes(Set<CarBodyType> bodyTypes) {
this.bodyTypes = bodyTypes;
}
}
和
public enum CarBodyType {
SEDAN, MINIVAN, VAN;
private Set<CarBrand> brands;
// getter and setter
}
这是一个好的解决方案吗?或者通过第三个联结实体来实现这种关系会更好吗?如果是这样,它应该是什么?这个实体应该如何设计,它应该包含哪些字段?