关于商品分类 商品表和属性表的设计
—————————– 以下是几个关联的对象 省去了 getter/setter 方法 ——————
Field.java 属性
- public class Field{
- private Integer id;
- private String name; // 属性名称
- }
public class Field{ private Integer id; private String name; // 属性名称 }
ProductField.java 商品属性
- public class ProductField{
- private Integer id;
- private Field field; // 属性对象
- private String value; // 属性值 这里的值不管是整数 小数 还是什么类型都是用 String 类型
- }
public class ProductField{ private Integer id; private Field field; // 属性对象 private String value; // 属性值 这里的值不管是整数 小数 还是什么类型都是用 String 类型 }
Product.java 商品表
- public class Product{
- private Integer id;
- private String name; //商品名称
- //根据商品 加载这个商品的所有属性 和属性值
- private Set<ProductField> productFields = new HashSet<ProductField>();//商品属性集合
- }
public class Product{ private Integer id; private String name; //商品名称 //根据商品 加载这个商品的所有属性 和属性值 private Set<ProductField> productFields = new HashSet<ProductField>();//商品属性集合 }
Type.java
- public class Type{
- private Integer id;
- private String name; //分类名称
- //通过类型 可以加载这个类型下的所有商品 一种类型对应多种商品
- //(暂时不考虑一种商品属于多种类型 例如手机属于电器类,也属于通讯类产品)
- private Set<Product> products = new HashSet<Product>();
- }
public class Type{ private Integer id; private String name; //分类名称 //通过类型 可以加载这个类型下的所有商品 一种类型对应多种商品 //(暂时不考虑一种商品属于多种类型 例如手机属于电器类,也属于通讯类产品) private Set<Product> products = new HashSet<Product>(); }
———————- Hibernate 配置文件就不帖出来了,以下是由POJO和hbm配置文件生成出来的表 示例-
//表关系
Type
id name
1 电脑
3 手机
4 脑残
Product
id name typeid
1 SONY 1(fk)
2 DELL 1
3 韩国猪 4
4 叁欣 3
Fields
id name
1 颜色
2 重量
3 型号
…
ProductFields
id pdctid fieldid value
1 (fk)1 (fk1)1 红色
2 1 2 500g
3 2 3 XYZ
4 2 1 白色
5 3 4 1000.00
–加载的测试数据
- +++++++++ 商 品信息 ++++++++
- Name:Sony
- 价 格 – 2000.00
- 型 号 – YY-1939
- 名 称 – 锁你牌手机
+++++++++ 商品信息 ++++++++ Name:Sony 价格 - 2000.00 型号 - YY-1939 名称 - 锁你牌手机
href:http://www.javaeye.com/topic/616088