在电子商城项目开发中, 会存在同一种商品存在不同规格的情况, 如图某型号手机在售卖时用户可以选择的不同规格:
这里商品的库存量单位(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
表数据图示:
从图中数据看出, 该商品共有27种不同规格可选, 那么这时在确定用户选择的某种规格的价格等信息时只需一条 SQL 语句即可完成:
select * from `item_sku` where `item_id`=6 and `attr_symbol_path`='1,4,7';
相关推荐
这两种布局模式都可以轻松地实现商品规格选项的排列,无论是水平排列还是垂直排列,同时还能保证在响应式设计中的灵活性。 在实际开发过程中,还需要注意以下几点: 1. **响应式设计**:确保布局在手机、平板电脑...
1、模拟淘宝产品SKU信息的组合添加...6、添加商品规格例子新.rar 添加商品规格例子新,添加商品规格例子新,添加商品规格例子新,添加商品规格例子新,添加商品规格例子新,添加商品规格 例子新,添加商品规格例子新
在电商项目中,商品的规格选择(SKU,Stock Keeping Unit)是一个常见的功能模块,它允许用户根据商品的不同属性(如尺寸、颜色等)进行选择,确保购买的商品是精确的组合。在Vue.js框架下实现这样的功能,需要考虑...
首先,商品对比功能是电商网站上常见的一种特性,它允许用户在不离开当前页面的情况下,对多件商品的主要属性进行比较,如价格、规格、评价等。在实现这一功能时,我们需要以下几个关键知识点: 1. **Ajax请求**:...
1. **布局架构**:商品详情页的布局需要清晰且富有层次,一般包括商品主图、标题、价格、库存、规格选择、商品描述、评价等模块。开发者需要合理使用Android的布局组件,如LinearLayout、RelativeLayout、...
这需要我们实现一个筛选功能,根据用户选择的属性值过滤出对应的SKU,进而显示相关商品。 4. SKU编码:为了方便管理和查找,每个SKU通常会有一个编码,这编码可能是基于商品ID和属性值组合生成的哈希值,或者是预定...
JavaScript与jQuery:用于实现各种交互功能,如导航栏的折叠、商品列表的无限滚动等。jQuery则简化了DOM操作,提高了开发效率。 功能方面: 响应式设计:模板能够自动适应不同屏幕尺寸,确保在智能手机、平板等设备...
- `proddetail.asp`和`proddetail1.asp`是产品详细信息页面,展示商品的图片、价格、描述、规格等详细信息,通常还包括“加入购物车”、“立即购买”等交互按钮。 6. **反馈功能**: - `feedback.asp`可能是用户...
1. **商品管理**:系统提供了完善的商品上传、编辑、分类、展示功能,商家可以轻松添加、修改商品信息,包括商品图片、价格、库存等,同时支持多种规格和属性的设定,满足不同商品类型的管理需求。 2. **订单处理**...
- 商品列表:展示商品的列表,包括商品图片、名称、价格等信息,可能涉及到分页加载和无限滚动。 - 商品详情:展示单个商品的详细信息,如描述、评论、规格选择等。 - 购物车:用户可以添加商品到购物车,调整...
- **无限商品分类**:支持无限层级的商品分类,便于管理和查找。 - **筛选功能**:允许用户按照销量、人气、价格等维度对商品进行排序和筛选。 - **热卖排行**:展示当前热销商品排行榜,激发用户购买兴趣。 **...
在电商应用中,商品详情页通常包含文字描述、图片展示、规格参数等信息,图文并茂地展示商品全貌,以便消费者做出购买决策。这种页面设计需要考虑如何高效地加载和展示大量内容,同时保持界面的流畅性和互动性。 ...
9.采购退货 记录采购退货的详细信息,如:厂商名称、商品及规格型号等,提供直接开单、引用、冲正、查找、输出等功能,提供无限数据关联和业务关联技术。审核完毕自动产生退货出库单和退货结算单,提供任务驱动业务...
- **商品展示**:展示各类商品的信息,包括图片、价格、规格等。 - **购物车管理**:允许用户添加商品到购物车,并可随时调整数量或删除商品。 - **订单处理**:用户提交订单后,系统自动处理订单信息,包括发货地址...
4) 商品管理、规格管理、配送方式、支付方式、物流公司、配货点管理、商品属性管理、快递单打印;5) 独创短信催付款功能,服务跟踪管理等一应俱全;6) 适用于各类进行直销/分销电子商务运营的传统生产企业和销售/...
【10】商品必选项◆下单时必须选择的选项,如:颜色、尺码、规格等,同时可设置子库存 如眼影膏颜色:红色|库存7件、绿色|库存8件、蓝色|库存9件 【11】QQ选号◆选号类商品如QQ号码,有完善的选号机制! 完全...
2. 商品展示:展示家电商品的详细信息,如图片、规格、价格等,用户可以浏览并选择心仪的商品。 3. 购物车:用户可以将选择的商品加入购物车,随时修改购物车中的商品数量,或者删除不需要的商品。 4. 订单处理:...
商品管理模块是电商平台的核心模块之一,旨在帮助商家管理商品信息、商品规格、商品库存、商品数据导入导出等。该模块的主要功能包括: * 商品添加、编辑、删除、列表编辑、批量操作、回收站、搜索等 * 商品规格...
TypeScript + Vite + Pinia + Element Plus等流行技术栈的后台管理系统,自适应多端、支持CRUD代码生成、自带WEB终端、同时提供Web和Server端、内置全局数据回收站和字段级数据修改保护、自动注册路由、无限子级权限...