诚恳请教一个产品模块设计的问题

08-01-08 fnet
我是新手,请教关于一个设计的问题。

需求如下:

产品:图片,1:N,一个产品对应多张图片。

我的问题是:

图片这个entity在产品中的表现形式,哪种比较好:

(1)第一种

class Product {
private int product_id;
...
private Set pPhotoSet;//含有一个图片集合
}

class ProductPhoto {//产品图片实体类
private int pro_photo_id;
}
<p>

(2)第二种,新增一个对象,将集合置于对象中

class Product {
private int product_id;
...
private ProductAssociate pAssociate;//含有一个对象
}

class ProductAssociate {
private Set productPhoto;
...
}

class ProductPhoto {//产品图片实体类
private int pro_photo_id;
}
<p>

请教banq先生,请教各位大哥,哪一种比较好,或者有没有更好的,诚恳感谢解惑

[该贴被fnet于2008-01-08 17:15修改过]

fico07
2008-01-09 13:07
产品可以不跟图片产生关联

fnet
2008-01-09 23:28
现在的需求是一个产品对应多张图片,产品比较简单,没有类别,图片也没有类别,但是以后可能会有

banq
2008-01-10 19:41
当然第一个,缺省1:N关联设计结果就是这样,第二种我没看懂,这方面不要绕弯路,采取标准的简洁做法

fnet
2008-01-10 23:24
洗耳恭听,谢谢banq最后回复

jeadu
2008-01-11 02:03
一般我是这样做的, 我认为在OO数据库没有成熟之前,这种方式是最好:

class Product{
private Long productId;
}

class Photo{
private Long photoId;
}

class ProductPhoto{
private Long photoId;
private Long productId;
}

class ProductPhotoBean{
public Iterator getProductPhotos();
}
<p>

[该贴被jeadu于2008-01-11 03:28修改过]

Skysss
2008-01-16 16:29
同意banq的看法.第一种比较好.

但补充一下,第二种也是可以的.看上去虽然多了一层,但有了这一层以后使得代理模式(Proxy)应用起来更为方便.

当然,在ProductPhoto中应用代理模式应该也是可以的.

killer
2008-01-19 21:31
第一种好,自然,现实怎么样就怎么样,第二种有过度设计的嫌疑^_^

猜你喜欢