`

商品的无限规格实现(转)

 
阅读更多

在电子商城项目开发中, 会存在同一种商品存在不同规格的情况, 如图某型号手机在售卖时用户可以选择的不同规格:

同一商品的不同规格

这里商品的库存量单位(SKU)便不再是该商品, 而是到具体属性组合出的规格, 每种规格可能会有不同的售价、运费与库存剩余情况, 所以用户在购买时, 不仅需要记录所购买的商品 ID, 同时也需要记录购买的该商品的具体规格。

直观分析图示中的规格情况, 网络类型机身颜色机身内存 属于商品不同属性的名称, 与之对应的为属性可选择的的具体值, 属于一对多关系, 在 MySQL 数据库表结构中反应出为:

# 商品属性名
CREATE TABLE `item_attr_key` (
    `attr_key_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,     # 主键, 自增 ID
    `item_id` INT(10) UNSIGNED NOT NULL,                        # 关联到商品
    `attr_name` VARCHAR(50) NOT NULL,                           # 属性名称
    PRIMARY KEY (`attr_key_id`)
);

# 商品属性值
CREATE TABLE `item_attr_val` (
    `attr_key_id` INT(10) UNSIGNED NULL DEFAULT NULL,       # 对应 item_attr_key 表的 attr_key_id, 完成一对多关联
    `item_id` INT(10) UNSIGNED NULL DEFAULT NULL,           # 关联到商品
    `symbol` INT(10) NULL DEFAULT NULL,                     # 属性编码
    `attr_value` VARCHAR(255) NULL DEFAULT NULL             # 属性值
);

加入数据后表内容如图:

商品属性的键值对应

symbol 字段是对指定商品 ID 下的属性值的一个序号标记, 是为了提高在后面使用到时的检索效率。该值在不同商品间可以重复, 在同一商品的属性中需要保证唯一。

以上就完成了商品 ID 为 6 的商品多属性的存储工作。


为了能够记录和快速查询出每种属性组合出的商品的价格、库存等信息, 我们还需要张表来维护这部分数据, 建立 item_sku 表:

# 商品库存量单位表
CREATE TABLE `item_sku` (
    `sku_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,                      # 主键, 自增 ID
    `item_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',                        # 关联到商品
    `attr_symbol_path` VARCHAR(255) NOT NULL,                               # 属性组合出的规格路径
    `price` DOUBLE(15,2) NOT NULL DEFAULT '0.00',                           # 价格
    `freight` DOUBLE(15,2) NULL DEFAULT '0.00',                             # 运费
    `stock` INT(10) UNSIGNED NOT NULL DEFAULT '0',                          # 库存数量
    PRIMARY KEY (`sku_id`)
);

该表是用户在添加完商品属性后, 由系统负责生成的该商品所有的可以选择的属性组合方案, attr_symbol_path 字段即是该商品不同属性值的 symbol 字段组合后的路径, 用来指示该规格具体指代哪些属性。

如 attr_symbol_path 字段值为 1,4,7, 则对应 item_attr_val 表中 item_sku.item_id = item_attr_val.item_id 条件下 symbol 字段值为 1, 4, 7 的属性组合: TD-LTE/FDD-LTE/TDS/WCDMA/EVDO/GSM - 深空灰 - 16GB

将示例中具有三种网络类型、三种机身颜色、三种机身内存的属性数据生成 SKU 后的 item_sku 表数据图示:

商品属性SKU

从图中数据看出, 该商品共有27种不同规格可选, 那么这时在确定用户选择的某种规格的价格等信息时只需一条 SQL 语句即可完成:

select * from `item_sku` where `item_id`=6 and `attr_symbol_path`='1,4,7';
分享到:
评论

相关推荐

    仿淘宝商品尺寸,颜色,商品规格选择的布局

    这两种布局模式都可以轻松地实现商品规格选项的排列,无论是水平排列还是垂直排列,同时还能保证在响应式设计中的灵活性。 在实际开发过程中,还需要注意以下几点: 1. **响应式设计**:确保布局在手机、平板电脑...

    SKU 相关代码及知识

    1、模拟淘宝产品SKU信息的组合添加...6、添加商品规格例子新.rar 添加商品规格例子新,添加商品规格例子新,添加商品规格例子新,添加商品规格例子新,添加商品规格例子新,添加商品规格 例子新,添加商品规格例子新

    使用vue实现多规格选择实例(SKU)

    在电商项目中,商品的规格选择(SKU,Stock Keeping Unit)是一个常见的功能模块,它允许用户根据商品的不同属性(如尺寸、颜色等)进行选择,确保购买的商品是精确的组合。在Vue.js框架下实现这样的功能,需要考虑...

    右侧漂浮的ajax商品对比效果

    首先,商品对比功能是电商网站上常见的一种特性,它允许用户在不离开当前页面的情况下,对多件商品的主要属性进行比较,如价格、规格、评价等。在实现这一功能时,我们需要以下几个关键知识点: 1. **Ajax请求**:...

    电商-上拉商品详情界面Demo

    1. **布局架构**:商品详情页的布局需要清晰且富有层次,一般包括商品主图、标题、价格、库存、规格选择、商品描述、评价等模块。开发者需要合理使用Android的布局组件,如LinearLayout、RelativeLayout、...

    电商SKU算法

    这需要我们实现一个筛选功能,根据用户选择的属性值过滤出对应的SKU,进而显示相关商品。 4. SKU编码:为了方便管理和查找,每个SKU通常会有一个编码,这编码可能是基于商品ID和属性值组合生成的哈希值,或者是预定...

    基于bootstrap实现的兼容手机html5电商模板

    JavaScript与jQuery:用于实现各种交互功能,如导航栏的折叠、商品列表的无限滚动等。jQuery则简化了DOM操作,提高了开发效率。 功能方面: 响应式设计:模板能够自动适应不同屏幕尺寸,确保在智能手机、平板等设备...

    网络商城全功能,无限制XRT版

    - `proddetail.asp`和`proddetail1.asp`是产品详细信息页面,展示商品的图片、价格、描述、规格等详细信息,通常还包括“加入购物车”、“立即购买”等交互按钮。 6. **反馈功能**: - `feedback.asp`可能是用户...

    ASP源码—安信微信商城管理系统(免费无限版) v2.9.2.zip

    1. **商品管理**:系统提供了完善的商品上传、编辑、分类、展示功能,商家可以轻松添加、修改商品信息,包括商品图片、价格、库存等,同时支持多种规格和属性的设定,满足不同商品类型的管理需求。 2. **订单处理**...

    基于微信小程序的商品展示+ssm后端源码案例设计.zip

    - 商品列表:展示商品的列表,包括商品图片、名称、价格等信息,可能涉及到分页加载和无限滚动。 - 商品详情:展示单个商品的详细信息,如描述、评论、规格选择等。 - 购物车:用户可以添加商品到购物车,调整...

    B2C功能清单

    - **无限商品分类**:支持无限层级的商品分类,便于管理和查找。 - **筛选功能**:允许用户按照销量、人气、价格等维度对商品进行排序和筛选。 - **热卖排行**:展示当前热销商品排行榜,激发用户购买兴趣。 **...

    高仿淘宝、京东上拉加载图文详情实现

    在电商应用中,商品详情页通常包含文字描述、图片展示、规格参数等信息,图文并茂地展示商品全貌,以便消费者做出购买决策。这种页面设计需要考虑如何高效地加载和展示大量内容,同时保持界面的流畅性和互动性。 ...

    大型企业管理Erp系统商业源码,含完整源码、数据库和开发文档

    9.采购退货 记录采购退货的详细信息,如:厂商名称、商品及规格型号等,提供直接开单、引用、冲正、查找、输出等功能,提供无限数据关联和业务关联技术。审核完毕自动产生退货出库单和退货结算单,提供任务驱动业务...

    开题报告超市购物系统的设计与实现~ 已通过开题答辩的.docx

    - **商品展示**:展示各类商品的信息,包括图片、价格、规格等。 - **购物车管理**:允许用户添加商品到购物车,并可随时调整数量或删除商品。 - **订单处理**:用户提交订单后,系统自动处理订单信息,包括发货地址...

    KesionIMALL 在线商城系统 v3.7 正式版

    4) 商品管理、规格管理、配送方式、支付方式、物流公司、配货点管理、商品属性管理、快递单打印;5) 独创短信催付款功能,服务跟踪管理等一应俱全;6) 适用于各类进行直销/分销电子商务运营的传统生产企业和销售/...

    善美购物商城系统2006SP1版

    【10】商品必选项◆下单时必须选择的选项,如:颜色、尺码、规格等,同时可设置子库存 如眼影膏颜色:红色|库存7件、绿色|库存8件、蓝色|库存9件 【11】QQ选号◆选号类商品如QQ号码,有完善的选号机制! 完全...

    基于asp的网上家电销售管理系统毕业设计与实现(源代码+项目报告).zip

    2. 商品展示:展示家电商品的详细信息,如图片、规格、价格等,用户可以浏览并选择心仪的商品。 3. 购物车:用户可以将选择的商品加入购物车,随时修改购物车中的商品数量,或者删除不需要的商品。 4. 订单处理:...

    电商平台功能列表资料.pdf

    商品管理模块是电商平台的核心模块之一,旨在帮助商家管理商品信息、商品规格、商品库存、商品数据导入导出等。该模块的主要功能包括: * 商品添加、编辑、删除、列表编辑、批量操作、回收站、搜索等 * 商品规格...

    BUILDADMIN后台管理系统

    TypeScript + Vite + Pinia + Element Plus等流行技术栈的后台管理系统,自适应多端、支持CRUD代码生成、自带WEB终端、同时提供Web和Server端、内置全局数据回收站和字段级数据修改保护、自动注册路由、无限子级权限...

Global site tag (gtag.js) - Google Analytics