私は列挙型を持っています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
}
これは良い解決策ですか?それとも、第 3 の接合エンティティを介してそのような関係を実装する方がよいでしょうか? もしそうなら、それは何であるべきですか?このエンティティをどのように設計し、どのフィールドを含める必要がありますか?