商城系统商品属性的数据库设计思路
京东商城的数据库是如何搭建的,那么多商品,每种商品的参数各不相同,是怎样设计数据库的?
在提及这种设计思路前,首先得了解数据表可以分为两种结构:
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
商城系统商品属性的数据库设计思路相关推荐
- (转)商城系统商品属性的数据库设计思路
http://www.360doc.com/content/12/0513/18/1542811_210764350.shtml 最近看到一个题目,要求提出一套商品属性相关的数据库设计思路,要求是商品 ...
- 单系统站内信数据库设计思路
第一版设计 需求 :单用户之间通信(融合了用户反馈需求) 数据库设计:Message内容和收发者存在一张表中 message表: 这里一条Message存两次,类似邮件服务. status:已读.未读 ...
- 中小型超市系统中的分类/产品属性/扩展属性的数据库设计
中小型商城系统中的分类/产品属性/扩展属性的数据库设计 正文: 之前发表过一篇"商城系统中[商品扩展属性]的表单生成及客户端验证",部分童鞋对于后台数据库的设计比较感兴趣,于是今天 ...
- 多用户商城系统商品表设计
多用户商城系统商品表用于存储商家上架的商品信息. 商品表(wst_goods) 字段名称 字段说明 字段描述 类型 长度 默认 必填 goodsId 自增ID int 11 是 1 goo ...
- Springboot面向全球电子商城系统3v50f计算机毕业设计-课程设计-期末作业-毕设程序代做
Springboot面向全球电子商城系统3v50f计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot面向全球电子商城系统3v50f计算机毕业设计-课程设计-期末作业 ...
- 计算机毕业设计Java智能家电商城(系统+源码+mysql数据库+lw文档)
计算机毕业设计Java智能家电商城(系统+源码+mysql数据库+lw文档) 计算机毕业设计Java智能家电商城(系统+源码+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...
- asp.net网上商城系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目
一.源码特点 asp.net 网上商城系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为vs2010,数据库为sqlserver2 ...
- jsp源码商城系统Myeclipse开发mysql数据库servlet开发java编程计算机网页项目
一.源码特点 JSP 源码商城系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统采用serlvet+dao+bean mvc 模式,系 ...
- asp.net在线电子商城系统VS开发sqlserver数据库web结构C#编程
一.源码特点 asp.net 在线电子商城系统(购物系统) 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. 下载地址: asp.net在线电 ...
最新文章
- yii2 后台权限验证获取用户身份_Yii2搭建后台并实现rbac权限控制完整实例教程...
- python库整理目录
- 中级计算机培训班心得,计算机中级培训学习心得体会
- Spring Data JPA 条件查询的关键字
- mysql默认数据库有什么用_MySQL安装后默认自带数据库的作用
- Python3 —— 列表
- python增加工作日列_将工作日添加到日期字段
- Jeecg-Boot 2.0.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台
- [OpenCV学习笔记3][图像的加载+修改+显示+保存]
- mysql如何加快备份和恢复速度_加速mysql备份和恢复
- 一个demo学会css
- 在MySQL中,一条查询语句是如何执行的
- RedisJson 横空出世,性能碾压ElasticSearch 和Mongo!
- 【Unity】12.3 Off Mesh Link组件
- 如何用WGDI进行共线性分析(三)
- 在C#中如何将多个rtf文件内容组合在一起用一个rtf文件保存?
- 清华姚班出身,95后博士生从网瘾少年到发表顶会论文的科学家
- hexo文章中插入图片
- mac 高清壁纸推荐
- 1024 发福利,送你一份珍藏依旧的 Java,大数据礼包,确定不收藏 ?拒绝白嫖 !
热门文章
- echarts 三种数据双y轴显示 (文末附带完整代码)
- 过勇 清华计算机系,清华大学16位学霸为一事现身PK 简历吓坏网友
- 阿里云点播集成播放器的SDK时遇到的黑屏有声音的问题
- win10 蓝牙耳机 麦克风不可用
- iQOO Z7x参数配置 iQOO Z7x评测怎么样值得买吗
- java jvm优化(一)
- Counting regions —— 多边形对角线分割区域个数
- 被裁员之后的Java面经分享,10年经验,已投简历 130+
- wireshark解析TCP的几种状态 (SYN, FIN, ACK, PSH, RST, URG)
- iOS签名更新是什么意思,自己可以操作么?