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

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

需求如下:
产品:图片,1:N,一个产品对应多张图片。

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

(1)第一种


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

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

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


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

class ProductAssociate {
private Set productPhoto;
...
}

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

请教banq先生,请教各位大哥,哪一种比较好,或者有没有更好的,诚恳感谢解惑
[该贴被fnet于2008-01-08 17:15修改过]

产品可以不跟图片产生关联

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

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

洗耳恭听,谢谢banq最后回复

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


class Product{
private Long productId;
}

class Photo{
private Long photoId;
}

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

class ProductPhotoBean{
public Iterator getProductPhotos();
}


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

同意banq的看法.第一种比较好.
但补充一下,第二种也是可以的.看上去虽然多了一层,但有了这一层以后使得代理模式(Proxy)应用起来更为方便.
当然,在ProductPhoto中应用代理模式应该也是可以的.

第一种好,自然,现实怎么样就怎么样,第二种有过度设计的嫌疑^_^