京东商城的数据库是如何搭建的,那么多商品,每种商品的参数各不相同,是怎样设计数据库的?

在提及这种设计思路前,首先得了解数据表可以分为两种结构:
1\横表,也就是我们经常用到的表结构,

2\纵表,这种结构平时我们用到的表少,通过看非营利开发编程社区codeit,org.cn博客上的一篇文章,我才知道有一种叫纵表的设计模式。什么是纵表,它有哪些优点和缺点呢? 纵表的结构如下

通过以上水平表和垂直表的对比发现: 横表的优点是很直观,它是根据现行业务逻辑定制,设计简单,易操作。缺点:当业务逻辑发生拓展时,大多情况下要更改表的结构。
纵表的好处:比较灵活,当业务系统发生拓展时可以很好的适应,缺点:纵表的数据感觉很乱,而且字段的数据出现很大的冗余。
在这种设计思想对产品设计,需要三个表, -一个为产品表,用来存产品的公共属性,另外一个是产品分类表,最后一个表很关键,用来存不同类别产品的不同属性,采用的是纵表的结构,如图:

数据库表设计

●属性类别表speC
spec_ id-属 性类别id
spec_ name -属 性类别名称
●属性值表spec_ info
spec_ info_ id 一属 性值id
spec
id-属性类别
spec_ info_ name一属 性值名称
■商品表goods
goods_ id 一商品id
goods_ name一商品名称 .
■商品属性表goods_ spec
goods_ spec_ jid 一商品属性id
goods_ jid 一商品id
spec_ info id 一商品属性值id
建立以上4个数据库后,spec表存放的是品牌,颜色,尺码等的属性名,spec_ jinfo表存放的是红色。蓝色,HP. IBM等的实际的属性值,再
通过goods_ spec表将一个商品跟它的属性进行关联,这样要实现类似淘宝的检索功能的SQL语句就可以编写如下:
假设要检索品牌为IBM或HP (在spec_ info表中的spec_ jinfo_ id 分别为1和2),颜色为红色(在spec_ info表中的spec_ jinfo_ jid 为6),尺码为15寸(在spec_ info表中的spec info_ id 为5)的商品

Ssql= "select " from goods_ spec where spec_ info_ id = 5 and goods_ id in (select goods_ id from goods_ spec where spec_ into_ id=6 and goods_ id in (solect goods. id from goods_spec where spec_info_jid= 1 or spec_jinfo_id= 2);

思路一,使用独立的商品类表, 构造商品属性信息,1、N个商品类属性值表,2、商品基本信息表,3、商品属性表
思路二,使用key-value模型,使用动态行列转换模型,将商品属性信息碎片化存储,整合型只读输出快照,1、公共键值表,2、公共类表,3、公共键类表,4、属性值物化表,5、商品基本信息表,6、商品属性表,6、商品属性快照表或模型
更多关于产品分类表的设计
中小型商城系统中的分类/产品属性/扩展属性的数据库设计https://www.cnblogs.com/yjmyzz/archive/2010/06/27/1766012.html
https://doc.wendoc.com/b35c0c89335aaa816dd2866381833203f564769ca.html

商城系统商品属性的数据库设计思路相关推荐

  1. (转)商城系统商品属性的数据库设计思路

    http://www.360doc.com/content/12/0513/18/1542811_210764350.shtml 最近看到一个题目,要求提出一套商品属性相关的数据库设计思路,要求是商品 ...

  2. 单系统站内信数据库设计思路

    第一版设计 需求 :单用户之间通信(融合了用户反馈需求) 数据库设计:Message内容和收发者存在一张表中 message表: 这里一条Message存两次,类似邮件服务. status:已读.未读 ...

  3. 中小型超市系统中的分类/产品属性/扩展属性的数据库设计

    中小型商城系统中的分类/产品属性/扩展属性的数据库设计 正文: 之前发表过一篇"商城系统中[商品扩展属性]的表单生成及客户端验证",部分童鞋对于后台数据库的设计比较感兴趣,于是今天 ...

  4. 多用户商城系统商品表设计

    多用户商城系统商品表用于存储商家上架的商品信息. 商品表(wst_goods)   字段名称 字段说明 字段描述 类型 长度 默认 必填 goodsId 自增ID   int 11   是 1 goo ...

  5. Springboot面向全球电子商城系统3v50f计算机毕业设计-课程设计-期末作业-毕设程序代做

    Springboot面向全球电子商城系统3v50f计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot面向全球电子商城系统3v50f计算机毕业设计-课程设计-期末作业 ...

  6. 计算机毕业设计Java智能家电商城(系统+源码+mysql数据库+lw文档)

    计算机毕业设计Java智能家电商城(系统+源码+mysql数据库+lw文档) 计算机毕业设计Java智能家电商城(系统+源码+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

  7. asp.net网上商城系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目

    一.源码特点         asp.net 网上商城系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为vs2010,数据库为sqlserver2 ...

  8. jsp源码商城系统Myeclipse开发mysql数据库servlet开发java编程计算机网页项目

    一.源码特点   JSP 源码商城系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用serlvet+dao+bean  mvc 模式,系 ...

  9. asp.net在线电子商城系统VS开发sqlserver数据库web结构C#编程

    一.源码特点         asp.net 在线电子商城系统(购物系统) 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. 下载地址: asp.net在线电 ...

最新文章

  1. yii2 后台权限验证获取用户身份_Yii2搭建后台并实现rbac权限控制完整实例教程...
  2. python库整理目录
  3. 中级计算机培训班心得,计算机中级培训学习心得体会
  4. Spring Data JPA 条件查询的关键字
  5. mysql默认数据库有什么用_MySQL安装后默认自带数据库的作用
  6. Python3 —— 列表
  7. python增加工作日列_将工作日添加到日期字段
  8. Jeecg-Boot 2.0.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台
  9. [OpenCV学习笔记3][图像的加载+修改+显示+保存]
  10. mysql如何加快备份和恢复速度_加速mysql备份和恢复
  11. 一个demo学会css
  12. 在MySQL中,一条查询语句是如何执行的
  13. RedisJson 横空出世,性能碾压ElasticSearch 和Mongo!
  14. 【Unity】12.3 Off Mesh Link组件
  15. 如何用WGDI进行共线性分析(三)
  16. 在C#中如何将多个rtf文件内容组合在一起用一个rtf文件保存?
  17. 清华姚班出身,95后博士生从网瘾少年到发表顶会论文的科学家
  18. hexo文章中插入图片
  19. mac 高清壁纸推荐
  20. 1024 发福利,送你一份珍藏依旧的 Java,大数据礼包,确定不收藏 ?拒绝白嫖 !

热门文章

  1. echarts 三种数据双y轴显示 (文末附带完整代码)
  2. 过勇 清华计算机系,清华大学16位学霸为一事现身PK 简历吓坏网友
  3. 阿里云点播集成播放器的SDK时遇到的黑屏有声音的问题
  4. win10 蓝牙耳机 麦克风不可用
  5. iQOO Z7x参数配置 iQOO Z7x评测怎么样值得买吗
  6. java jvm优化(一)
  7. Counting regions —— 多边形对角线分割区域个数
  8. 被裁员之后的Java面经分享,10年经验,已投简历 130+
  9. wireshark解析TCP的几种状态 (SYN, FIN, ACK, PSH, RST, URG)
  10. iOS签名更新是什么意思,自己可以操作么?