2015-06-07 205 views
0

說有一個花店具有固定類型花束休眠設計多對一映射

class FlowerShop{ 
Bouquet[] bouquets; 
} 

花束有類型的花

class Bouquet{ 
    int bouquetId; 
    List<Flower> flowers; 
    } 

花有一些固定屬性

class Flower{ 
    String name; 
    ColorEnum color; 
    int flowerId; 
    int bouquetId; 
    ... //other properties 
    } 

什麼是適合的表設計來實現這一目標?

選項1:由於類花束只有bouquetId然後只有一個表

Flowers {flowerId,bouquetId,name,color,etc,etc..} 

在這裏,我將不得不遍歷花對象,並使用地圖bouquetId->List<Flower> 在此之後,我需要構建其中每個bouquetId 然後構建花店花束的陣列花束對象的對象

選項2:

Flowers {flowerId,name,color,etc,etc} 
Bouquets {bouquetId,flowerId} 
FlowerShop {bouquetId}  

我不太確定第三張桌子。只有一家花店。 我想我需要選擇所有的花束對象和編程創建FlowerShop對象從bouquets.Can我休眠創建FlowerShop對象?

回答

0

您只能創建花表。

Flowers {flowerId,BouquetEnum_name,name,color,etc,etc} 

對於Bouquets,您將創建一個Enum而不是表格。所以當你想要得到一束花的所有花時,你將把花的查詢的WHERE子句中的某個花束對應的Enum。只有一家花店嗎?所以你會以編程方式創建它,並且對象將由花名單組成,其中每個列表代表一種花束(這些花束將在BouquetEnum上)。

我猜你看起來像你的選擇1.