(二)购物商城数据库设计-商品表设计

大家好,今天我们来设计一下购物商城的商品表。

我们的目标是表结构能够满足下面这张图的搜索:

搜索

在设计表之前,我们先来了解下商品中的两个概念:SPU和SKU

  • SPU
    SPU(Standard Product Unit):标准化产品单元。是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。

  • SKU
    SKU=Stock Keeping Unit(库存量单位)。即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。

举个例子:iPhone6是一个SPU,iPhone6 32G 白色是一个SKU,iPhone6 128G 白色是另一个SKU。

因此,不难发现,这里需要一张SPU表。

SPU

SPU表有了,这里还是以iPhone6为例,iPhone6有内存16G的,有32G的,有黑色,有白色等信息,这些信息我们称之为规格,比如内存是一种规格,颜色是一种规格。这些规格放在那里呢,放在SPU表里面自然是不合适的,因为每个SPU的规格都不一样。因此这里需要一张规格表,用来存放内存,颜色(不是存放32G,黑色,就存放“内存”,“颜色”这个值,表示这个SPU具有内存,颜色规格),然后用一张中间表,把SPU表和规格表关联起来,如图:

SPU规格

接下来需要解决的是,如何存放“32G”,“黑色”这些值呢?这些时具体规格的值,只需要新建一张规格值表即可。规格表和规格值表是一对多的关系,即一个规格有多个值,内存有32G,64G等。

规格值
到这里还是没有涉及到SKU的概念,先别急,我们再回到最开始的那张搜索表:

搜索

发现还少了品牌的概念,SPU与品牌的关系是一对一的关系,一个SPU具有一个品牌(iPhone6的品牌是苹果),这点好理解,因此只要新建一张品牌表,然后SPU表里添加一个品牌id。

品牌

至此,我们似乎已经可以通过规格搜索出大部分的商品,屏幕尺寸,网络,机身内存这三项都是规格,品牌我们也知道了。

但是,购物商城中不可能只卖手机,还会卖电脑,衣服等。这里我们衍生出另一个概念:分类。其中手机是一种分类。因此,我们要新建一张分类表,里面存放各种分类名称,然后在SPU表里面添加一个分类id,如图:

分类

现在,我们已经把SPU相关的表设计好了,现在来设计SKU相关的表。

根据SKU的定义得知,SKU是SPU的一种详细说明,因此SPU与SKU的关系是一对多的关系,即一个SPU对应多个SKU,首先我们要有一张SKU表:

SKUADD

其中SKU表中有一个spu_id。然后我们来看下SKU需要哪些字段,上面说到了SPU有规格,那SKU就落实到了具体的规格值,即具体的内存,颜色等。规格值表已经有了,因此需要建一张SKU与规格值的关联表:

SKU-规格值

这样,SKU就有具体的规格了。接下来,我们在根据实际的SKU图看下还缺少哪些东西。下面一张截图来自京东商城

sku

大部分的内容我们都有了,但还缺少几样东西,如果是C2C的商城,那应该有个店铺,还有一个增值保障。一个SKU对应一个店铺,可直接在SKU表里加一个店铺id,然后有一张独立的店铺表。

店铺

至于增值保障,肯定需要一张表来存放增值保障信息,然后它跟SKU的关系是多对多的关系,需要一张中间表来关联

增值保障

至此,商品表的核心内容已经设计得差不多了,当然还有其它内容。篇幅有限我们就不一一展开讨论了。大家有问题和意见可以在下面留言讨论。下一篇文章我们根据本篇的设计来做具体的建表,并来一次实际演练。

  • 94
    点赞
  • 400
    收藏
    觉得还不错? 一键收藏
  • 62
    评论
购物商城的Spu-Sku数据库设计主要是为了管理商品的库存和销售信息。Spu(Standard Product Unit)是商品的标准产品单位,通常指的是一组具有相同特征但可能有不同规格的商品,例如同一款衣服的不同颜色或尺码。Sku(Stock Keeping Unit)是商品的库存管理单位,是对Spu的具体细分,用于区分不同规格或属性的商品。 在数据库设计中,可以建立两个主要的:Spu和Sku。Spu用于存储商品的基本信息,包括商品的名称、描述、品牌、分类等。此外,可以为Spu添加一些扩展字段,例如商品的图片、销售状态等。 Sku用于存储商品的具体规格和库存信息,其中包括Spu的外键关联、商品的属性、规格、价格和库存数量等。通过外键关联,可以将Sku与其对应的Spu关联起来,实现Spu与Sku的多对一关系。同时,可以在Sku中添加一些扩展字段,例如商品的条形码、上架时间等。 为了提高查询效率,可以在Sku中添加索引,例如根据商品的价格、库存数量、销售状态等字段进行索引,以快速获取满足条件的商品信息。 此外,为了提高系统的可维护性和可扩展性,可以添加一些辅助,例如属性和属性值,用于管理商品的属性信息。属性用于存储商品的属性名称,属性值用于存储属性的具体取值范围。 总之,购物商城的Spu-Sku数据库设计需要考虑Spu和Sku之间的关联关系,以及商品的基本信息和规格信息的存储和管理。通过合理的设计和优化索引,可以提高系统的查询性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 62
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值