[PHP] B2B2C商品模块数据库设计

本文探讨电商网站数据库设计的关键要素,包括商品分类、属性、规格与库存管理的策略,以及数据库优化方法,如索引使用、存储引擎选择和分片技术,确保高效率的数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**************2016年4月25日 更新********************************************/

知乎:产品 SKU 是什么意思?与之相关的还有哪些?

 

kentzhu

在电子商务里,一般会提到这样几个词:商品、单品、SPU、SKU

 

简单理解一下,SPU是标准化产品单元,区分品种;SKU是库存量单位,区分单品;商品特指与商家有关的商品,可对应多个SKU。

 

首先,搞清楚商品与单品的区别。例如,iphone是一个单品,但是在淘宝上当很多商家同时出售这个产品的时候,iphone就是一个商品了。

 

商品:淘宝叫item,京东叫product,商品特指与商家有关的商品,每个商品有一个商家编码,每个商品下面有多个颜色,款式,可以有多个SKU。

 

SPU = Standard Product Unit (标准化产品单元),SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。例如,iphone4就是一个SPU,N97也是一个SPU,这个与商家无关,与颜色、款式、套餐也无关。

 

SKU=stock keeping unit(库存量单位),SKU即库存进出计量的单位, 可以是以件、盒、托盘等为单位。在服装、鞋类商品中使用最多最普遍。 例如纺织品中一个SKU通常表示:规格、颜色、款式。

 

SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管 理模式来处理。比如一香烟是50条,一条里有十盒,一盒中有20支,这些单位就要根据不同的需要来设定SKU。

 

老黄的实验室:

spu,sku,item,规格,单规格商品,双规格商品,三规格商品…

 

服装为例:

一款衣服,是一个spu

这款衣服,有黑白两个颜色,小中大特大四个尺码,颜色和尺码就是他的两个规格,每个颜色和尺码排列组合,组成最终的sku。

 

iphone6为例:

iphone6是一个spu

规格1-颜色,包含黑色白色,土豪金

规格2-容量,包含16G,32G,64G,128G

规格3-制式,移动版,联通版,电信版

规格4-合约,合约机,非合约机

把每个规格都排列组合一下,就是最终的sku

 

知乎:有哪些常见的数据库优化方法?

 

谢龙:

1.善用explain,看看自己写的sql到底要涉及到多少表,多少行,使用了那些索引,根据这些信息适当的创建索引;

2.善用不同的存储引擎,MySQL有多种不同的存储引擎,InnoDB,Aria,MEMORY根据需要给不同的表选择不同的存储引擎,比如要支持transaction的话用InnoDB等;

3.表很大的时候,做分片。

 

惑春秋:

数据库物理层:
1)数据库系统软件应该尽量跟数据文件分置不同存储设备
2)如果可能数据库临时空间、log尽量使用快速存储设备
3)数据文件应该根据具体应用需要分置不同存储设备提高读取效率
4)数据文件使用RAID既保障数据安全又有利性能

数据库逻辑层
1)为数据库system表空间、user表空间、应用表空间分离
最起码user和应用不应该使用系统表空间
如果可能三类表空间应该分在不同物理存储上
2)应用表空间中
表的表空间、索引的表空间也应该分离
3)创建表时应该考虑表的特性
比如有些表大部分时候是只插入记录很少修改删除
有些表是所有记录经常增、删、改
有些表只有少数字段
有些表有大量字段但大部分时候其中大半字段为空
有些表数据增长很快
有些表数据常年基本不变
等等
不同特性的表应该在创建时定义不同的起始空间和空间增长方案
以尽量让一条记录处于一个连续的物理存储空间提高读取效率
另外要制定不同的备份恢复和碎片整理机制
4)索引不是越多越好
而是因表的特点而不同
数据变化频繁的表还应该建立索引定期重建机制
否则索引不但不会改善性能还会降低性能
5)某些应用常用表比如lookup code之类的
如果可能尽量建在独立的表空间上
并把表空间建在快速存储设备上

上面这些对SQL Server一类轻量级的数据库也就差不多了
但对于Oracle DB2这种重量级数据库
还有内存管理优化
太久不做一时有点儿理不清头绪了
以后想起来能补再补

数据库应用层
这个太多了
首先Modeling要合理
这个太重要
应用设计不合理再怎么优化、谁来优化也只是死马当活马病
其次是代码中的SQL语句优化
比如查询尽量使用索引
尽量不要做全表扫描
慎用子查询和Union All
多表join时尽量用小表去join大表
(注每个数据库厂商对join的处理不完全一样
此处的优化应该参考数据库厂商的用户手册)
等等等等

 

 

知乎:mysql的数据库设计到底该不该加约束

比如非空约束,外键约束等。因为我看到我们公司的DBA在设计数据库结构的时候都是不加任何约束的,这样对性能的提高有多大,会不会影响到数据的完整性。新手求大牛解答?

joylisten

学院派会告诉你在设计的时候把应该有的约束都加上

 

而实践派得出的结论是主键一定加,非空约束尽量加,外键最好依赖于程序逻辑,而不是数据库,从而更好的拥抱变化,快速响应,数据库也会有相对较好的性能

 

Rocky

主键约束一定要加,非空约束必不可少。外键最好不要加,除非是关联极多,业务极其复杂的时候才可以考虑加外键。

 

知乎:关于电商网站数据库的设计?

我在思考一个问题,电商网站的数据库设计,主要是商品分类,商品的详情(不同的商品有不同的熟悉,比如衣服有颜色、尺码,然而电脑有CPU、内存、显卡等规格),库存表(一个商家里面某个商品有不同的规格,不同的规格有不同的库存数量),这之间怎么设计。

可能我描述的不是很清楚,我想了解一下这方面改怎么设计,可能有朋友问我,为什么不按照分类吧数据库设计“死”呢,因为易于之后的扩展,我不可能一下子做的很完善,总是慢慢扩展的,所以想这么做。

 

何明璐:

 

首先来说对于这种场景有两种设计方法,这两种方法都能够满足扩展性要求

 

1. 把原有的横表转化为纵表存储属性,即

产品表:(product_id, product_name, product_class)

产品属性表:(product_id, property_id , property_name , property_value)

 

2. 保持原有横表设计思路,但是弹性字段含义单独元数据表存储

产品表:(product_id, product_name, product_class, prop1, prop2, .... propn)

产品属性含义元数据表

(product_class , prop1_name ,prop2_name, ..... propn_name)

 

对于两种设计方法,个人理解为

 

a. 对于首页打开就必须要能够快速查询出来的属性,而且这些属性本身各类产品差异不大。而对于差异大的属性基本都是针对特定一个产品查询。可以采用方案1来做。

b. 首页显示产品列表时候就存在要显示出不同产品属性情况,采用方案2来做。当我们处理的是一个product list的时候,由于存在数据表本身的关联场景,用方案1会比麻烦,也影响性能。

/*********************************************************/

goods_common(公共商品表)

 

规格和属性的区别是,规格影响价格,属性不影响价格,在商品分类页的是属性筛选

 

规格名称字段

把规格名称数组序列化后存入这个字段

例如:Array ( [1] => 颜色 ),

key对应的是规格表的id,value对应规格表的名称

key部分是不会变的,value部分是可以被店铺填商品的时候修改

 

规格值字段

把规格名称对应的值数组序列化后存入这个字段

例如:Array ( [1] => Array ( [222] => 蓝色 [224] => 绿色 [225] => 梅红 [226] => 黑色 ) ),

第一维的key对应规格表id,

二维数组的key对应规格值表的id,value对应规格值表的名称

 

商品属性

例如:Array ( [206] => Array ( [name] => 款式 [3050] => 毛衣 ) [207] => Array ( [name] => 材质 [3059] => 棉 ))

一维数组的key对应的是属性表的id,二维数组的name对应属性表的名称,二维数组的第二个元素key对应属性值表id,value对应属性值表的名称

 

商品公共id

商品名称

商品宣传词

商品分类id

商品分类名称————适度冗余,减少关联表

店铺id

店铺名称         ————适度冗余,减少关联表

品牌id

品牌名称

类型id              ————关联类型表,并关联类型下面的属性

商品主图         ————只保存上传后图片的文件名,全路径通过程序拼接,更灵活

商品内容

商品状态         ————0 下架,1 正常

违规原因

商品审核

审核失败原因

商品锁定

商品添加时间

商品上架时间

商品价格

市场价

成本价

折扣

商家自定义编号

运费模版

运费模版名称

是否推荐

是否免运费

是否开具增值税发票

一级地区id

二级地区id

店铺分类id 首尾用,隔开

顶部关联版式

底部关联版式

 

 

 

goods(商品主表)

添加不同规格的商品,生成多条商品信息,sku是不同的,

商品SKUid

商品公共id

商品名称(+规格名称)

商品宣传词

店铺id

店铺名称

商品分类id

商品品牌Id

商品价格

市场价

商家自定义编号

点击数量

销售数量

收藏数量

商品规格序列化,例如:Array ( [222] => 蓝色 )

商品库存

商品主图

商品状态

商品审核状态

商品添加时间

商品编辑时间

一级地区id

二级地区Id

颜色规格id     ————关联商品图片表,展示颜色图片

运费模版id

是否推荐

是否免运费

是否开具增值税发票

店铺分类id 首尾用,隔开

好评星级

评价数量

 

spec (商品规格表)

规格id

规格名称

规格排序

分类id

分类名称

 

spec_value (商品规格值表)

规格值id

规格值名称

规格id

分类id

店铺id     ————不同的店铺,规格值不同

规格颜色

排序

 

attribute(商品属性表)

属性id

属性名称

类型id

属性值列

是否显示

排序

 

attribute_value(商品属性值表)

属性值id

属性值名称

属性id

类型id

属性值排序

 

category(商品分类表)

分类id

分类名称

类型id     ————添加商品时选择分类,根据类型id,类型规格表,关联规格id,取出规格

 

类型名称

父级id

排序

标题

关键字

描述

 

type(商品类型表)

类型id

类型名称

排序

分类id

分类名称

 

type_spec(类型规格关联表)

类型id

规格id

 

goods_image(商品图片表)

商品图片id

商品公共id

店铺id

颜色规格id     ——关联商品表的颜色id,展示在详情页部分

商品图片

排序

是否默认         ——是否是封面上展示的图片

MallBuilder是一款基于PHP+MYSQL的多用户网上商城解决方案。利用MallBuilder可以快速建立一个功能强大的类似京东商城、天猫商城、1号店商城的网上商城,或企业、行业化、本地化和垂直化的多用户商城。MallBuilder是B2Bbuilder的姊妹篇。她除了延续B2Bbuilder的众多优点之外,还增填了许多新功能。使操作加简单,功能加完善,性能加稳定的多用户商城建设系统。 MallBuilder为拓展企业销售渠道,突显电子商务商业价值,致力于推动电子商务技术的发展而不断努力。365天精心研发,真情回馈客户! MallBuilder功能(包括中英文及多语言) 垃圾信息过滤 内置远丰网盾,智能垃圾信息过滤,注册机封杀,全面阻止各种网站木马攻击。 SEO功能 可以独立设置各模块的,title,keyword,description等功能,url静态化处理,以及完善友好的内链,也开发有独立的SEO模块。 竟价排名 管理员可以在后台自由设定公司,产品,或者商情的排名指数。 支付中心 完整切功能强大的支付中心,支持担保交易,直接到账交易,充值,提现,查询等一系列功能,让您的网站也拥有像支付宝一样的支付工具。 邮件功能 邮件贯穿网站的各个地方,包括会员注册,会员丢失密码,会员之间互相发邮件。管理员可以在后台设置常用邮件模板,并针对性的对某一个会员或者部分会员群发邮件功能,可以选择给某一类别的会员,某一地区,群发邮件。 手机短信 邮件伴随着手机短信一起发布,如询盘,下订单,会员通知等,可以设置只有高级会员组使用。 站内短信 会员之间有管理员可以互相发送站内短信进行相互联系,保存商业信息。游客也可以给会员发送邮件及站内短信等 会员积分 功能强大的积分系统,管理员可以细化控制每一项功能可以获得的积分,以及消费得分,比如发布产品可以获得多少分, 查看某一条商务信息联系方式需要用掉多少积分,会员也可以通过推广网站获得积分,实现会员自助充值积分。 在线点评 可以对每种不同类型的企业设定不同的评份类别,评份可以分为二级类别,可以详细地设置评分选项。 分站功能 可以为省份或城市绑定二级域名,行业大类绑定二级域名等,会员商铺二级域名以及为会员商铺绑定顶级域名,绑定后自动对内容划分,实现分站功能。可以为分站配备独立的管理员进行对分站管理,广告分站投放等。 Ucenter整合 可以和ucenter轻松整合,这样你就可以与众多的PHP开源项目进行轻松整合。 管理员权限组 可以设定不同的管理员组,细化到每一项功能及分城市管理功能,以及详尽的管理员操作日志,记录管理员何时何地操作了什么。 系统设置功能 让管理员可以轻松管理整个网站。遇到紧急情况,可以关闭网站,暂停使用,或关闭注册功能。 安全机制 可以很好地对注册机进行防止,比如IP限定,验证码,自定义验证问题,邮件验证,人工验证等。 图片水印功能 可以自定义水印位置,格式,内容,实现图片防盗功能。 统计功能 详细的会员商铺统计功能,及整站统计功能。 阅读记录功能 可以对网站会员平时所阅读过的,新闻,产品,商情等种信息进行记录统计,以便管理员了解会员动向。 TAG功能 本功能十分强大并且有用,网站上的每个内容都与tag进行整合,Tag可以方便地把站内所有相关内容进行整合,让网站成为一个十分有用的有机体。 缓存机制 由于系统为了提高网站访问速度,应对大的访问量,采用了多种缓存机制,可以设定各种缓存时间及清空缓存。 在线支付交易 集成整合了支付宝、财付通、 paypal网银等众多流行的在线支付工具.仿敦煌网的模式,用户可以在线充值,在线销售,实现了B2B2C的全新商务模式,对于网站主来说是B2B网站,对于会员来说相当于一个B2C模式,结合在线支付工具,会员可以自主开设商铺,实现产品在线销售与订购,如淘宝类的购物一样, 拥有完整的产品在线交易流程. 在线销售 完整的多用户商城系统可与B2B系统整合使用,用户可以开商铺,交保证金,在线交易支付评论等,一系列标准流程,可以用来制作仿京东商城系统,仿1号店系统,仿天猫商城等。 促销模块 会员可以在后台发布促销活动,管理员进行促销审核,以及对促销活动的宣传等. 专题模块 强大的专题功能,站长可以跟据某项内容在某些特定的时期推出一些专题,可以制作不同的专题模板,在线操作,各种功能调用模块,自由组合出不同的专题版面 团购模块 功能强大的标准团购功能。即可进行实物产品销售,也可以进行虚拟产品销售,拥有完善的购物流程和审核机制。 会员模块 VIP等级体系、实名认证体系、自动二级、顶级域名精美商铺,自主建站。 产品模块 管理员可以自定义产品字段,CSV批量上传产品,在线询价,交易支付,以及权限控制等。 资讯模块 可以无限级设定资讯类别,文章权限控制,什么样的会员级别可以查看,并记录某个会员查看过什么文章。文章标题加粗,变色功能等 品牌模块 品牌可以和类别关联,与产品关联,品牌招商等功能,实现了品牌营销以及快速帮用户精准搜索 新闻模块 会员可以在后台发布企业新闻,管理员也可开启会员投稿功能,直接将会员新闻发布到资讯中。 图库模块 会员相册可以分类,比如营业执照,公司信息,管理员可以自定义系统类别,实现图库聚合。 投票模块 管理员可以发布在线投票,调查问卷。 工商信息验证 管理员可以在后台对会员进行工商信息验证,进行审核管理。 广告模块 可以在后台新增广告组,广告组可以包含多个广告,生成广告调用代码后可以在任意网站任意页面调用该广告,广告会自动分城市显示,可以发布多种广告形式,图片,文字,代码,连接,flash等。 友情连接模块 会员可以在我的办公室中填加自己的友情连接。管理员可以在后台管理友情链接,包括图片及文字链接,可以控制链接顺序及显示形式,图片或文字。 计划任务 系统可以自动执行规定好的任务,也可以自己写脚本实现高级功能,让网站可以智能化执行某些功能。 网站公告 管理员可以发布各种形式的网站公告,及显示时间。 数据库管理 可以轻松对网站进行备份,恢复,以及数据库的修改及优化操作。 创建网页 用户可以根据需要自己设置一下相关的个性独立页面,丰富网站的介绍说明及功能。 悬浮JS留言板 会员可以在后台复制代码,任意位置任意网站均可用。 地图模块 和第三方地图合作,可以自动识别用户的地址,在地图上标出来 在线反馈 网站的访客可以给管理员进行反馈,以便管理员及时了解网站信息,登录的会员也可以给管理员发布反馈信息,系统会自动记录该会员的信息,以便管理员与该会员联系。管理员可以和邮箱绑定,直接将信息发到邮件中。 纠错模块 当用户发布错误某些信息的时候,被另外的会员发现,可以及时报错,上报给管理员处理,当网站上的信息量庞大的时候可以帮助管理员对信息的准确性控制。 1.收货地址 添加 bug 2.团购订单 管理收货地址 链接错误 3.团购已团购数量 bug
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值