我有枚舉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
}
這是一個很好的解決方案嗎?或者,通過第三個交匯點實體來實施這種關係會更好嗎?如果是這樣,它應該是什麼?該實體應該如何設計,它應包含哪些領域?
@Bhesh:除了可以說Minivan和一輛貨車不是汽車之外......我用Vehicle來突出這個OP。我認爲在這個級別上的錯誤是他/她使用「Car」。 –
謝謝!這是唯一的解決方案?總是需要創建第三個結點實體?或者我只是選擇了不是最好的樣本?例如[這個案例](http://en.wikipedia.org/wiki/Many-to-many_(data_model))呢?如果'Book'和'Author'是枚舉。您的解決方案是否也適用於此示例?還是僅僅是針對我的具體情況? –