关于商品分类 商品表和属性表的设计

以前有这样的一个需求,不考虑像京东或者淘宝这样分类下有子分类的情况,只考虑一层分类的情况下,可以随便添加分类,可以任意给商品添加属性,而不需要更 改表的结构. 于是设计了一个这样的结构,实现还是可以实现,一直在用,但是在操作上比较麻烦,大家讨论下有没有更好的方式.

----------------------------- 以下是几个关联的对象 省去了 getter/setter 方法 ------------------
Field.java 属性
Java 代码
  1. public class Field{  
  2.    private Integer id;  
  3.    private String name; // 属性名称  
  4. }  
public class Field{    private Integer id;    private String name; // 属性名称 } 


ProductField.java 商品属性
Java 代码
  1. public class ProductField{  
  2.      private Integer id;  
  3.      private Field field; // 属性对象  
  4.       private String value; // 属性值 这里的值不管是整数 小数 还是什么类型都是用 String 类型  
  5.   
  6. }  
public class ProductField{      private Integer id;      private Field field; // 属性对象       private String value; // 属性值 这里的值不管是整数 小数 还是什么类型都是用 String 类型  } 


Product.java 商品表
Java 代码
  1. public class Product{  
  2.    private Integer id;  
  3.    private String name; //商品名称  
  4.    //根据商品 加载这个商品的所有属性 和属性值  
  5.    private Set<ProductField> productFields = new HashSet<ProductField>();//商品属性集合  
  6. }  
public class Product{    private Integer id;    private String name; //商品名称    //根据商品 加载这个商品的所有属性 和属性值    private Set<ProductField> productFields = new HashSet<ProductField>();//商品属性集合 } 


Type.java
Java 代码
  1. public class Type{  
  2.    private Integer id;  
  3.    private String name; //分类名称  
  4.    //通过类型 可以加载这个类型下的所有商品  一种类型对应多种商品  
  5.    //(暂时不考虑一种商品属于多种类型 例如手机属于电器类,也属于通讯类产品)  
  6.    private Set<Product> products = new HashSet<Product>();  
  7. }  
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 代码
  1. +++++++++ 商 品信息 ++++++++  
  2. Name:Sony  
  3. 价 格 - 2000.00  
  4. 型 号 - YY-1939  
  5. 名 称 - 锁你牌手机  
+++++++++ 商品信息 ++++++++ Name:Sony 价格 - 2000.00 型号 - YY-1939 名称 - 锁你牌手机 
href:http://www.javaeye.com/topic/616088

转载于:https://www.cnblogs.com/newstar0101/archive/2010/03/30/1700213.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304275.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis五种数据结构

1、String这是最简单的Redis类型。如果只使用这种类型&#xff0c;Redis就像一个可持久化的Memcached服务器。2、ListRedis的List是基于双向链表实现的&#xff0c;可以支持反向查找和遍历。常用案例&#xff1a;聊天系统、社交网络中获取用户最新发表的帖子、简单的消息队列、…

C# NUnit的安装

前言&#xff1a;NUnit是什么&#xff1f;NUnit 是一个单元测试框架&#xff0c;专门针对于.NET来写的。NUnit是xUnit家族种的第4个主打产品&#xff0c;完全由C#语言来编写&#xff0c;并且编写时充分利用了许多.NET的特性,比如反射,客户属性等等。最重要的一点是它适合于所有…

中国癌症大数据出来了!每年126万例癌症死亡本可避免

01 中国本土大样本数据&#xff1a;癌症真的可预防&#xff01;2017年&#xff0c;由全国肿瘤登记中心副主任陈万青教授、美国癌症协会Farhad Islami教授牵头的生活方式和感染对中国癌症发病和死亡影响的研究&#xff0c;发表在Annals of Oncology上[1,2]。该研究由美国癌症研究…

android 设置folder类型,正确配置你的 Android 项目

简评&#xff1a;优秀的 Android 项目从配置开始。: )作者在这里介绍了一个 Android 项目应该有的配置&#xff0c;文中讲到的内容大家都可以运用在自己的 Android 模板项目中。gitignore当你新建 Android 项目时&#xff0c;默认会生成 gitignore 文件&#xff0c;但并没有包含…

开发物体识别桌、_【课程总结】AR系统开发“秘籍”大揭秘!

导读&#xff1a;AR技术飞速发展&#xff0c;被广泛应用于游戏、医疗、旅游、电商等行业。那么对于AR系统的整体设计和应用是如何操作的呢&#xff1f;商汤泰坦公开课第006期联合“SLAM技术及应用”暑期学校与研讨会共同推出“移动增强现实系统的设计与应用案例解析”&“AR…

商业项目中最受欢迎的 7 种编程语言

【导读】&#xff1a;Semaphore 是一个国外持续集成/持续部署方案服务商。Semaphore 称自己在过去三年对其开发者用户进行调查&#xff0c;调查他们在开发商业项目时一般都使用哪些语言。这些数据基于成千上万个在 Semaphore 上进行测试和部署的项目的人。所以现在这是迄今为止…

为or、in平反——or、in到底能不能利用索引?

先说一个笑话&#xff0c;作为开场白。俺也换换风格试一试&#xff0c;呵呵。 在以前&#xff0c;有三个书生赶考&#xff0c;在路上遇到了一个算命先生&#xff0c;于是就问算命先生&#xff1a;我们三个人赶考&#xff0c;结果如何呀&#xff1f;算命先生伸出来了一个手指头&…

iNeuOS 工业互联网操作系统,在核工业测控领域的成功应用

注&#xff1a;由于本项目涉及核工业&#xff0c;具体细节保密。1. 前言iNeuOS工业互联网操作系统iNeuOS&#xff0c;公众号&#xff1a;iNeuOS“iNeuOS工业互联操作系统”面向未来&#xff0c;公众号首秀iNeuOS工业互联网操作系统积累了10多年工业领域知识和经验&#xff0…

5 thinkpad 黑将评测_王中林院士团队黑科技:80秒,将PM 2.5降至0!把森林氧吧搬回家!...

空气负离子(NAI)被称为“空气维生素”&#xff0c;它们广泛用于室内空气净化&#xff0c;包括去除空气中的颗粒物、对挥发性有机化合物进行氧化分解和抑菌。除了从森林、瀑布和暴雨等自然来源外&#xff0c;目前还开发了基于电晕放电、热离子电子发射、光激发和勒纳效应的纳米空…

详细解读给数据挖掘新手的6个案例

1946年2月16日&#xff0c;是一个值得纪念的日子。在这一天&#xff0c;人类历史上真正意义上的第一台电子计算机诞生了&#xff0c;此后计算机便随着科技的发展以强大的生命力飞速发展着。而作为用来定义计算机程序的形式语言——编程语言也紧跟计算机其后蓬勃发展&#xff0c…

Jquery高亮显示文本中重要的关键字

一、界面预览鼠标放到右边的Tab按钮上&#xff0c;文字透明度降低&#xff0c;同时一段文字高亮显示&#xff0c;效果如下&#xff1a;Demo地址&#xff1a;http://5thirtyone.com/sandbox/samples/fadefocus/很绚丽的效果幺&#xff01;二、实现原理将要高亮显示的文字加上<…

公众号滑动图代码_实用技巧:公众号封面图如何提取?

有好友留言说&#xff1a;经常看到很骚气的公众号封面&#xff0c;该怎么提取下载呢&#xff01;今天就告诉你&#xff0c;公众号的高清封面图如何下载&#xff01;一共有3种方法&#xff1a;01、网页代码直接下载①在浏览器打开公众号文章&#xff0c;在网页空白处鼠标右键&am…

如何使用 HttpReports 监控 .NET Core 应用程序

简介HttpReports 基于.NET Core 开发的APM监控系统&#xff0c;使用MIT开源协议&#xff0c;主要功能包括&#xff0c;统计, 分析, 可视化&#xff0c; 监控&#xff0c;追踪等&#xff0c;适合在中小项目中使用。github&#xff1a;https://github.com/dotnetcore/HttpReports…

课程笔记|吴恩达Coursera机器学习 Week1 笔记-机器学习基础

11. Introduction1.1 Supervised Learning已知输入x以及其对应的标签y&#xff0c;求解 f:x→y回归 regression&#xff1a;输出的结果y是一个连续的变量 yℝ分类 classification&#xff1a;输出的结果y是一个离散的变量 y{1,2,3...,k}1.2 Unsupervised Learning已知输入x&…

html如何链接sql sever,SQL Server链接服务器

链接服务器节点可以连接到另一个数据库&#xff0c;通常/通常在不同的机器上运行&#xff0c;也许在不同的城市/国家。如果您需要执行分布式查询(查询远程数据库)&#xff0c;这可能是有用的。设置链接服务器就是相当于使用简单的 SQL Server 管理套件&#xff0c;所有需要的就…

C#断点续传原理与实现

在了解HTTP断点续传的原理之前&#xff0c;让我们先来了解一下HTTP协议&#xff0c;HTTP协议是一种基于tcp的简单协议&#xff0c;分为请求和回复两种。请求协议是由客户机(浏览器)向服务器&#xff08;WEB SERVER&#xff09;提交请求时发送报文的协议。回复协议是由服务器(we…

.NET:使用 LinqSharp 简化复杂查询

LinqSharp 是个开源 LINQ 扩展库&#xff0c;它允许您编写简单代码来生成复杂查询&#xff0c;包括查询扩展和动态查询生成。LinqSharp.EFCore 是对 EntityFramework 的增强库&#xff0c;提供更多数据注解、数据库函数及自定义储存规则等。https://github.com/zmjack/LinqShar…

c#事件的发布-订阅模型_微信灰度测试订阅号付费功能,小米推出最便宜5G套餐,腾讯辟谣高管猝死赔钱事件,核心期刊发布十岁儿童文章,这就是今天的其他大新闻!...

今天是1月15日农历十二月廿一杭州又开始下雨了今天中午出个门我们这乡下打车排队能排到十几个。。。下面是今天的其他大新闻# 微信宣布&#xff1a;正灰度测试订阅号付费功能( IT之家 ) 1月15日消息&#xff0c;腾讯微信团队今日表示&#xff0c;目前微信灰度测试订阅号付费能力…

据说这篇总结覆盖了一般Python开发面试中可能会问到的大部分问题

原文标题&#xff1a;一名python web后端开发工程师的面试总结先介绍下我的情况通信背景&#xff0c;工作一年多不到两年。之前一直在做C的MFC软件界面开发工作。公司为某不景气的国企研究所。&#xff08;喏&#xff0c;我的工作经验很水&#xff1a;1是方向不对&#xff1b;2…

理解C#泛型运作原理

前言我们都知道泛型在C#的重要性&#xff0c;泛型是OOP语言中三大特征的多态的最重要的体现&#xff0c;几乎泛型撑起了整个.NET框架&#xff0c;在讲泛型之前&#xff0c;我们可以抛出一个问题&#xff0c;我们现在需要一个可扩容的数组类&#xff0c;且满足所有类型&#xff…