商城的表应该如何设计?

dong648629778 2014-11-07 10:36:57
加精
像淘宝那样,可以设置同一产品,不同规格,价格也不同,

他这个表是怎么设计的。

我知道比如买一个鞋子,不同参数不同价格对应的表格是这样设计的

ID 产品 颜色 尺码 价格
1 鞋子 红色 37 50
2 鞋子 蓝色 37 52

但颜色,尺码 这些参数的数量是不一定的。有些东西有可能只有一个规格,有些有5,6个,

我在想淘宝他在设计数据表的时候大概是怎么做的,难道是预留多少个字段吗。

当然我也知道可以有一张规格表 里面有如下参数

ID 规格名称 规格属性
1 颜色 红色
2 颜色 蓝色
3 尺码 37
4 尺码 38

然后对应的价格表里存的就是规格表id的集合了 比如
ID 规格ids 价格
1 1,3 50
2 2,4 50

但是这样设计问题又来了,淘宝在买东西的时候,比如买鞋子,我只选黑色,是可以统计出黑色鞋子所有尺码的剩余库存的,
现在只有两个参数我可以用id IN() 来统计库存这些,参数多了呢,难道连接多个AND IN 来吗?

各位大神有做过类似设计的提点下我这个初入门的新手,在此拜谢了。

总结来说就是规格的数量是动态的,如何设计表能更好的统计库存,还有卖的时候不同规格也有不同的价格。
...全文
3760 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
msdzysj 2014-12-09
  • 打赏
  • 举报
回复
按照前面大神设计的思路 商品主ID 然后分别对应属性表 多个属性表与商品表关联 做个视图出来 我乱说的 有错误的地方还请谅解
zy_think123 2014-12-09
  • 打赏
  • 举报
回复
你可以去找一个成品来看一看,如果说PHP的ecshop好像叫这个名字,免费的,你可以下下来看看它的表结构
猿人林克 2014-12-08
  • 打赏
  • 举报
回复
各种大型企业、电商系统基本都是以下结构: 产品分类一张表(一般是树形结构,与规格表一对多) 产品规格一张表 产品规格值域一张表(看你要求没提这个,为不同产品的不同规格定义值域范围) 产品规格单位值域一张表(你也没提这个,单位值域+货币值域等等) 以上4个表是配置表,以下这些是主数据表,不是业务表 产品规格信息表(涵盖不同产品的分类、规格等信息) 产品价格表 以上都可以认为是主数据表,然后才是你的业务表,不过电商的业务表比较复杂,这个要另说,一般大型企业的业务表数据量都在千万级别,电商更不用说了,所以要用关系数据库,业务表的设计尤为重要。
y502596725 2014-12-08
  • 打赏
  • 举报
回复
引用 35 楼 flyfeifei66 的回复:
《淘宝技术这十年》
这本书讲的还是比较泛,感觉像是读一本武侠!
yaojunyi3721 2014-11-14
  • 打赏
  • 举报
回复
再看那篇文章最后一个图 商品和规格参数之间有个商品规格参数关系表 所以商品是具体某个商家的某个货品的某些具体规格选项的东西 商品的公共属性由所在货品(一对多)对应的货品属性选项关系表得到 属于这个商家的私有属性是有商品规格选项关系表得到 除了详细页外 买家在列表页筛选完货品属性后看到的列表实际也是商品而非货品 总之在商城中看到的东西都是商品而非货品 ,货品是个概念,就像一个类 ,只有商家给这个类的各个属性赋值才成为一个对象(商品)
yaojunyi3721 2014-11-14
  • 打赏
  • 举报
回复
假如羊毛衫的颜色属性值较少与藏蓝色相近的只有蓝色 那么商家在添加商品时选择商品类型羊毛衫接着选择系统定义的羊毛衫的属性,为颜色属性选择蓝色属性值 ,但是在自定义商品规格时他可以添加颜色这个规格 为这个规格添加“天蓝色”和“藏蓝色”两种规格值 这是很符合实际的 因为商品属性五花八门 不可能商城把所有属性值都收入进去 必须允许商家自定义 而商家添加的”颜色“规格及里面的值是进入规格及规格选项表 其中规格表有商家id属性及货品id属性,这样保证这个规格只在此商家的此商品中使用 这是我的理解
yaojunyi3721 2014-11-14
  • 打赏
  • 举报
回复
今天用这个模型改现在的项目 才理解到货品 规格这一套的主要作用并不是我上面说的 而是属性是货品的属性,是标准的属性 而规格是商品的属性,是货品针对某个商家的自定义的属性 比如羊毛衫 是货品 有颜色 尺码等属性 点击某一个卖家的羊毛衫,进入详细页面后又有一些选择 可能也是颜色 尺码这些规格 也有可能是“套装” “官方原版”这样的规格,而套装这个规格下可能有“套装一”“套装二”等规格参数,这些规格不属于羊毛衫这种货品的共有属性,只属于这个商家的这个商品,为了区分属性从而叫做规格
yaojunyi3725 2014-11-13
  • 打赏
  • 举报
回复
规格和属性在电商中不一样的地方是 通过分类下的属性得到货品列表 点击某一货品 在货品详情页内根据货品的各个规格定位具体某一商品 如果规格和属性混在一起 在详情页就不知道要显示哪些规格或属性供用户再次筛选了 这样不满足产品设计师的要求 我猜测这样设计的原因是商品属性太多,在一个页面让用户全部选完定位一种商品体验差 所以才设计出列表筛选属性显示货品 详情页筛选规格得到商品的模型 简单的类电商的系统 如果产品人员没设计详情页再筛选的页面 那么程序员就采用商品-属性模型就可以了
yaojunyi3725 2014-11-13
  • 打赏
  • 举报
回复
看了上面提到的文章 挺不错的 后面加入了规格稍微有点绕 我理解着脱离电商系统看,规格就是属性但是在电商页面上“颜色”“尺码”这些属性和其他的属性起的作用不一样 所以单独划分一类 起名叫“规格” 就像“商品”和“货品”一样 都是在设计数据库时给对象起的名字 词义较平常发生了变化
yaojunyi3725 2014-11-13
  • 打赏
  • 举报
回复
公司其他同事做过一个系统 要求能在管理后台动态的添加字段 我想商品的属性都不是写死在数据表里的 而是动态添加的 动态添加数据库表里的字段
fox_坤 2014-11-12
  • 打赏
  • 举报
回复
引用 8 楼 qq467339640 的回复:
给你个连接 这个就是电商数据设计 http://www.cnblogs.com/leefreeman/p/4060227.html
guanggua123 2014-11-11
  • 打赏
  • 举报
回复
高手在民间。。。。。。。。。。。。。
guanggua123 2014-11-11
  • 打赏
  • 举报
回复
高手在民间。。。。。。。。。。。。。
zhijian52 2014-11-11
  • 打赏
  • 举报
回复
高手在民间。。。。
济南大飞哥 2014-11-11
  • 打赏
  • 举报
回复
《淘宝技术这十年》
wanghualeilei 2014-11-10
  • 打赏
  • 举报
回复
要考虑数据量 查询性能
999级 2014-11-10
  • 打赏
  • 举报
回复
A表 ID 鞋子牌子 类型(就是B表id) 价格…….. 1 特步 1 55 2.。。。。。。。 B表 ID 颜色 尺码 1 红 44 2 绿 43 3 。。。。。。 统计数量 Select * from A,B where A.id=B.id and B.颜色=红 and 尺码=43
qq_23162879 2014-11-10
  • 打赏
  • 举报
回复
qq_23137587 2014-11-10
  • 打赏
  • 举报
回复
chen870201 2014-11-10
  • 打赏
  • 举报
回复
貌似没这么简单
加载更多回复(24)
第1章课程定位与教学案例综述. 1.1职业岗位能力需求分析 1.2课程设置和课程定位分析 1.3WebShop电子商城介绍 1.3.1电子商城需求分析 1.3.2电子商城系统设计 1.3.3电子商城数据库设计 1.4LibraryMIS图书管理系统介绍 1.4.1图书管理系统需求分析 1.4.2图书管理系统系统设计 1.4.3图书管理系统数据库设计 习题 第2章面向对象技术和建模基础 2.1面向对象方法 2.1.1面向对象方法的基本思想 2.1.2面向对象方法的发展 2.2面向对象的基本概念与特征 2.2.1面向对象的基本概念 2.2.2面向对象的主要特征 2.3面向对象分析 .2.3.1处理复杂问题的原则 2.3.200A方法的基本步骤 2.4面向对象设计 2.5面向对象实现 2.6面向对象方法的内涵 2.7软件建模概述 2.7.1软件建模的概念 2.7.2软件建模的用途 2.7.3软件建模的优点 习题 第3章UML简介 3.1UML的发展 3.1.1UML的发展历程 3.1.2理解UML建模 3.2UML的特点 3.3UML的结构 3.3.1UML的事物 3.3.2UML的关系 3.4UML的视图 3.4.1用例视图 3.4.2逻辑视图 3.4.3并发视图 3.4.4组件视图 3.4.5部署视图 3.5UML图形符号 3.5.1用例图 3.5.2类图 3.5.3对象图 3.5.4状态图 3.5.5活动图 3.5.6顺序图 3.5.7协作图 3.5.8组件图 3.5.9部署图 3.5.10UML 2.0新特性 3.6UML建模基本流程 习题 第4章UML建模工具简介 4.1常用UML建模工具 4.1.1 Rational Rose 4.1.2Enterprise Architect 4.1.3Together 4.1.4PowerDesigner 4.1.5 Visi0 4.1.6Tnffun Plat0 4.2Rational Rose安装与配置 4.2.1Rational Rose的运行环境 4.2.2Rational Rose的安装 4.2.3Rational Rose的配置 4.3使用Rational Rose建模 4.3.1Rational Rose主菜单 4.3.2Rational Rose的视图 4.3.3 Rational Rose建模的基本过程 习题 第5章需求建模 5.1用例模型概述 5.2用例图组成 5.2.1参与者 5.2.2系统 5.2.3用例 5.3识别和描述用例.. 5.3.1识别用例 5.3.2绘制WebShop电子商城用例图 5.3.3通过包对用例进行合理规划 5.3.4WebShop电子商城用例图(不含关系) 5.3.5用例描述 5.4用例间的关系 5.4.1泛化关系 5.4.2使用关系 5.4.3包含关系 5.4.4扩展关系 5.4.5关系小结 5.4.6WebShop电子商城用例图(含关系) 习题 第6章静态建模 6.1静态建模概述 6.2类图概述 6.3类图的基本组成 6.3.1类的概述 6.3.2绘制带属性的实体类 6.3.3绘制带操作的实体类 6.3.4绘制边界类图 6.3.5绘制控制类图 6.3.6UML中的类与语言中的类 6.4类之间的关系 6.4.1关联关系 6.4.2聚合关系 6.4.3组合关系 6.4.4泛化关系 6.4.5实现关系 6.4.6依赖关系 6.5对象图 6.5.1对象图概述 6.5.2对象图组成 6.5.3类图和对象图的比较 习题 第7章数据库建模 7.1PowerDesigner简介 7.2PowerDesigner安装和启动 7.2.1PowerDesigner的安装 7.2.2PowerDesigner的启动 7.3PowerDesigner概念数据模型 7.3.1概念数据模型概述 7.3.2PowerDesigner概念数据模型概述 7.4 PowerDesigner物理数据模型 习题 第8章动态建模 8.1动态建模概述 8.2状态图 8.2.1状态图概述 8.2.2状态图组成 8.2.3绘制员工下班回家状态图 8.3活动图 8.3.1活动图概述 8.3.2活动图组成 8.3.3绘制WebShop电子商城活动图 8.4活动图拾遗 8.4.1活动图与流程图的比较 8.4.2活动图与状态图的比较 8.5顺序图 8.5.1顺序图概述 8.5.2顺序图组成 8.5.3绘制WebShop电子商城顺序图 8.6协作图 8.6.1协作图概述 8.6.2协作图组成 8.6.3绘制WebShop电子商城协作图 8.7 顺序图拾遗 8.7.1 顺序图与协作图的比较 8.7.2 顺序图与协作图的互换 习题 第9章物理建模 9.1物理建模概述 9.1.1硬件 9.1.2软件 9.2组件图 9.2.1组件图概述 9.2.2组件图组成 9.2.3绘制WebShop电子商城组件图 9.3部署图 9.3.1部署图概述 9.3.2部署图组成 9.3.3绘制WebShop电子商城部署图 习题 第10章双向工程 10.1双向工程简介 10.2正向工程(生成Java代码) 10.3逆向工程 习题 第11章统一软件过程RUP 11.1RUP简介 11.2RUPT作流程 11.2.1业务建模 11.2.2需求 11.2.3分析设计 11.2.4实施 11.2.5测试 11.2.6部署 11.2.7配置与变更管理 11.2.8项目管理 11.2.9环境 11.3RUP迭代过程 11.3.1初始 11.3.2细化 11.3.3构造 11.3.4移交 11.3.5迭代计划示例(构造阶段) 习题 附录A综合实训 附录B Rational Rose2003主菜单 参考文献...

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧