关于商品分类 商品表和属性表的设计
生活随笔
收集整理的這篇文章主要介紹了
关于商品分类 商品表和属性表的设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以前有這樣的一個需求,不考慮像京東或者淘寶這樣分類下有子分類的情況,只考慮一層分類的情況下,可以隨便添加分類,可以任意給商品添加屬性,而不需要更 改表的結構. 于是設計了一個這樣的結構,實現還是可以實現,一直在用,但是在操作上比較麻煩,大家討論下有沒有更好的方式.
----------------------------- 以下是幾個關聯的對象 省去了 getter/setter 方法 ------------------
Field.java 屬性
Java 代碼public?class?Field{?? ???private?Integer?id;?? ???private?String?name;?//?屬性名稱?? }?? public class Field{ private Integer id; private String name; // 屬性名稱 }
ProductField.java 商品屬性
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 商品表
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
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
--加載的測試數據
Java 代碼+++++++++?商 品信息?++++++++?? Name:Sony?? 價 格?-?2000.00?? 型 號?-?YY-1939?? 名 稱?-?鎖你牌手機?? +++++++++ 商品信息 ++++++++ Name:Sony 價格 - 2000.00 型號 - YY-1939 名稱 - 鎖你牌手機 href:http://www.javaeye.com/topic/616088
----------------------------- 以下是幾個關聯的對象 省去了 getter/setter 方法 ------------------
Field.java 屬性
Java 代碼
ProductField.java 商品屬性
Java 代碼
Product.java 商品表
Java 代碼
Type.java
Java 代碼
----------------------? 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
--加載的測試數據
Java 代碼
轉載于:https://www.cnblogs.com/newstar0101/archive/2010/03/30/1700213.html
總結
以上是生活随笔為你收集整理的关于商品分类 商品表和属性表的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaWeb中的Session、Ses
- 下一篇: [转]解决Windows 7下Windo