2015-06-07 172 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.