thinkphp商城系统之商品模块表设计

5.后台商品模块

商品模块是商城项目最核心的模块,也是最复杂的。如果说你能掌握这个模块,那对你来说绝对是获益匪浅,这模块会涉及到以下知识点:

  1. 聊聊电商领域中的SPUSKU
  2. 表的设计,告诉你为什么要这么设计
  3. 复杂的查询,例如属性筛选

篇幅限制,可以访问:实力进阶,教你使用thinkphp6开发一款商城系统,如果对你有帮助,记得点赞哈~

5.1SPU和SKU

在电商领域,SPU(Standard Product Unit)和SKU(Stock Keeping Unit)是两个常用的概念,用于对商品进行分类和管理。

SPU的定义:指标准化的产品单元,通常指一组具有相似属性、功能和用途的商品。SPU可以看作是一类商品的集合,具有相同的基本特征。

如图,这是京东商城商品列表

在这里插入图片描述

相信买东西的时候大家都打开过这样的一个列表页,可能很多时候你把列表中的商品理解为一个具体的产品。实际上它是一个spu,它包含了一些通用的属性,例如cpu型号、内存、屏幕尺寸、颜色等,并且还有一组通用的图片和描述。

SKU定义:它就是具有独特属性的单个具体产品

如图

在这里插入图片描述

点击某个spu,进入具体的spu详情,里面展示的是每个具体的sku,比如图片中的每种颜色和版本的组合就是一个具体sku,每个sku都有自己的属性及库存。

5.2表设计

商品模块相关表的设计很复杂,涉及到的表非常多,下面我会一个个的讲,以后大家项目中遇到可以适当的参考一下。

5.2.1品牌表

字段类型备注
idint(10) unsigned主键(PRIMARY)
brand_namevarchar(30)品牌名称
brand_imagevarchar(255)品牌图片
sortint(11)排序
remarkvarchar(255)品牌介绍
is_showtinyint(1)是否显示:1-是.0-否
creatorint(11)创建者
updatorint(11)更新者
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

如果说商品涉及到品牌,那么就需要有相应的品牌管理功能,一般来说涉及到名字、图片、排序等字段,至于展示端展示的是名称还是图片,这就看具体需求。

5.2.2分类表

字段类型备注
idint(10) unsigned主键(PRIMARY)
pidint(11)父级id
category_namevarchar(30)分类名称
imagevarchar(255)分类图片
remarkvarchar(255)分类描述
leveltinyint(1)等级
sortint(11)排序
is_showtinyint(1)是否显示:1-是;0-否
is_recommendtinyint(1)是否首页推荐:1-是;0-否
creatorint(11)创建者
updatorint(11)更新者
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

商品分类表是非常重要的,我们买东西的时候一般会选择分类,例如手机、衣服、笔记本、食品等分类。这里的pidlevel字段是跟分类层级有观的,因为分类有一级分类、二级分类、三级分类,甚至更多,另外还有个”是否首页推荐“字段,适用于首页展示某些商品,也是常用需求之一。

5.2.3规格表

字段类型备注
idint(10) unsigned主键(PRIMARY)
cate_idint(11)最后一级商品分类ID
spec_namevarchar(30)规格名称
sorttinyint(4)排序
is_advancedtinyint(1)高级选项:0-否, 1-是
is_showtinyint(1)显示:0-否,1-是
creatorint(11)创建者
updatorint(11)更新者
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

商品规格或者说属性,这里的属性是跟分类绑定的,因为不同的分类有不同的属性,例如手机、衣服属性是不一样的,另外鉴于页面的展示的原因,一般需要把属性划分为高级选项和普通选项,这个可参考京东。如果说你属性没有那么多,其实没必要设置高级选项。

5.2.4规格属性值表

字段类型备注
idint(10) unsigned主键(PRIMARY)
spec_idint(11)规格ID
spec_valuevarchar(30)规格属性值
sorttinyint(4)排序
is_showtinyint(1)是否显示:1-是,0-否
creatorint(11)创建者
updatorint(11)更新者
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

这个也很好理解,每个属性都有多个值,例如手机的属性-机身内容它有1TB、512GB、256GB等值

5.2.5商品表

字段类型备注
idint(10) unsigned主键(PRIMARY)
goods_namevarchar(150)商品名称
goods_spubigint(20)商品SPU
one_cate_idint(11)一级分类
two_cate_idint(11)二级分类
three_cate_idint(11)三级分类
four_cate_idint(11)四级分类
brand_idint(11)品牌
supplier_idint(11)供应商
imagevarchar(255)商品主图
remarkvarchar(255)商品简介
contenttext商品详细描述
statustinyint(1)商品状态:-1-回收站;0-下架;1-上架
sortint(11)排序
sales_sumint(11)商品销量
comment_sumint(11)评论数量
click_sumint(11)点击数量
pricedecimal(10,2)商品价格
discount_factordecimal(10,2)折扣系数
freight_typetinyint(1)运费类型:1-包邮;2-统一运费;3-运费模板
freight_pricedecimal(10,2)统一运费金额
freight_template_idint(11)运费模板
is_newtinyint(1)新品推荐:1-是;0-否
is_hottinyint(1)热点产品:1-是;0-否
is_teamtinyint(1)开启拼团:1-是;0-否
creatorint(11)创建者
updatorint(11)更新者
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

商品表存储什么字段,都是根据实际业务来设计的,下面我分下面几点来解释

  1. 像商品名、图片、价格这些用于展示的,都是必须的。
  2. 商品SPU,这个字段是商品的唯一标识,像京东商品之间的关联就是使用SPU,而不是自增ID,不过我们使用自增ID关联即可,一般来说使用php开发都是一些小商城了,没有那么规范,这里提出来主要是让大家知道有这么一个设计原则。
  3. 四级分类,这里限定了四级分类,如果说还不够,那么加字段,弄到五级即可。
  4. 商品详细描述,正常来说不应该存储到这里的,这里应该拆分多一个表专门存储商品的详细描述,但也要看实际情况,如果说你开发的商城,商品数量就一两万,拆不拆分都可以,因为几乎不影响性能。就算以后数据量突然暴增,到时拆分开也可以。
  5. 排序,一般用户会看销量、评论数量,因此记录这两个数就很有必要了。
  6. 销售手段,比如说新品推荐、热点产品、拼图等等
  7. 跟运费有关的些字段,比如免运费、统一运费等

5.2.6评论表

字段类型备注
idint(11)主键(PRIMARY)
goods_idint(11)商品ID
goods_item_idint(11)某种规格商品ID
order_goods_idint(11)订单商品表id
user_idint(11)用户ID
goods_startinyint(1)商品评论星级:1-5星
service_startinyint(1)服务评论星级:1-5星
express_startinyint(1)物流评论星级:1-5星
commentvarchar(255)商品评论
replyvarchar(255)商家回复
statustinyint(1)显示状态 0-隐藏 1-显示
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

商品评论需要记录商品ID,具体的某款产品(SKU)ID,评论的用户ID,评论内容,另外还设置了商品的评价、售后服务的评价、无论的评价。

5.2.7评论的图片/视频表

字段类型备注
idint(10) unsigned主键(PRIMARY)
typetinyint(1)文件类型:1-图片,2-视频
goods_comment_idint(11)商品评价id
urlvarchar(255)文件链接l
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

用户上传商品的图片和视频

5.2.8商品拥有的规格属性表

字段类型备注
idint(10) unsigned主键(PRIMARY)
goods_idint(11)商品ID
spec_idint(11)规格ID
spec_value_idint(11)规格属性ID
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

这里存储了商品ID、规格ID、规格属性ID,这个表主要用于属性筛选

5.2.9商品SKU表

字段类型备注
idint(10) unsigned主键(PRIMARY)
goods_idint(11)商品ID
titlevarchar(100)标题
skubigint(20)商品SKU
spec_idsvarchar(200)多个规格id,隔开
spec_value_idsvarchar(200)多个规格属性值ID,隔开
market_pricedecimal(10,2)市场价
pricedecimal(10,2)价格
cost_pricedecimal(10,2)成本价
stockint(10)库存
bar_codevarchar(200)条码
creatorint(11)创建者
updatorint(11)更新者
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

这个表主要是存储了用于商品详情展示的信息,比如说规格、价格、库存等,注意这里存储规格和规格属性值,后面我们可以看看如何进行筛选。

另外这里我们也新增了商品SKU字段,其意义跟SPU类似。

5.2.10 商品SKU主图

字段类型备注
idint(10) unsigned主键(PRIMARY)
typetinyint(1)文件类型:1-图片,2-视频
skubigint(20)商品评价id
urlvarchar(255)文件链接
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

详情里面的轮播图

5.2.11商品点击表

字段类型备注
idint(10) unsigned主键(PRIMARY)
user_idint(11)用户ID
goods_idint(11)商品ID
creatorint(11)创建者
updatorint(11)更新者
create_timedatetime创建时间
update_timedatetime更新时间
delete_timedatetime删除时间

为什么要这个表?对于一些体量比较大的商城来说,收集用户的行为是非常重要的,这个不单单说后台用于页面的统计,更多的是用于推荐系统,他们需要足够大的数据去训练推荐模型。

5.2.12 商品收藏表

字段类型为空额外默认整理备注
idint(10) unsignedPKauto_increment主键(PRIMARY)
user_idint(11)YES0用户ID
goods_idint(11)YES0商品ID
create_timedatetimeYES创建时间
update_timedatetimeYES更新时间
delete_timedatetimeYES删除时间

这个也是收集用户行为相关的表

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文所实现的是基于微信小程序的超市外卖系统,主要是为小型超市、社区超市与消费者之间提供一个外卖平台。本系统能使超市增加客源和销售量,也可以让消费者减少购物时间并且可享受送货上门服务,为超市经营者与消费者双方提供便利。 本系统共有五个模块,分别是商品浏览模块商品搜索分类模块、购物车与支付模块、个人中心模块和后台管理模块。五个模块中,除了后台管理模块,其余四大模块为微信小程序实现的内容。由于该系统是基于微信的,个人账号即为微信账号,用户通过微信账号登录小程序。商品浏览模块为用户提供商品浏览与商品详情查看功能。分类模块实现将商品简单分类以便于用户查找商品。购物车模块负责管理用户已添加的商品,并提供简单的编辑功能,如修改商品数量。购物车模块还负责商品的结算与支付。个人中心模块管理用户的个人信息,为用户提供收货地址管理功能并且可以查看用户的历史订单。后台管理模块实现管理员对超市的商品和订单进行管理。 本系统使用微信开发团队提供的框架和微信Web开发者工具,小程序整体开发接近于前端HTML+CSS+JavaScript的开发模式。在开发过程中,使用了微信官方提供的API,如发起HTTPS请求、登录、微信支付等。后台服务器采用ThinkPHP框架,使用MySQL数据库管理系统系统数据进行管理。
一、ThinkPHP3.2仿京东实战电子商城开发项目 第一天 1.项目说明 2.时间插件、XSS过滤、在线编辑器使用 3.商品的删除 4.商品的修改完成-一张的操作全部完成 5.tp中使用AJAX提交单 6.把模板套到项目中 7. 管理员的登录 第二天 1.锁机制 2.时间插件、XSS过滤、在线编辑器使用 3.商品的删除 4.商品的修改完成-一张的操作全部完成 5.tp中使用AJAX提交单 6.把模板套到项目中 7. 管理员的登录 第三天 1.模板布局 2.图片上传函数、代码生成器使用 3.代码生成器的使用 4.RBAC建和生成基本的代码 5.RBAC-完成添加角色和权限的功能-1 5.RBAC-完成添加角色和权限的功能-2 6.选择权限时JS的智能选择 7.角色完成 第四天 1.管理员管理 2.RBAC-权限的验证-完成 3.商品模块需求分析 4.商品模块结构设计 5.类型管理 第五天 1.商品设计 2.商品模块-添加商品单制作-1 3.商品模块-添加商品单制作-2 4.商品模块-处理添加商品单-1 5.商品模块-处理添加商品单-完成 第六天 1.商品修改单的制作-1 2.商品修改单的制作-2 3.处理商品修改的单-1 4.处理商品修改的单完成 5.商品删除-回收站-还原 第七天 1.商品模块结构设计 2.商品库存单的制作 3.库存量的添加处理 4.库存量的修改完成 5.趣味题:打印矩阵-苹果篮子-字符串截取 6.前台网站优化思路 7.前台公共模板的制作 第八天 1.首页-分类树数据的获取 2.商品推荐数据的获取-疯狂抢购 3.首页添加缓存功能 4.会员注册 5.会员验证与登录 6.登录的验证 第九天 1.商品详情页-1 2.商品详情页的缓存 3.会员价格 4.最近浏览 5.最近浏览0完成 6.商品评论-判断登录状态并实现登录之后的跳转 第十天 1.ajax发评论 2.ajax获取加载评论 3.评论的优化 4.加入购物车 5.购物车列 6.购物车的修改 7.AJAX跨域-jsonp 第十一天 1.下定单-1 2.下定单-2 3.只能购买在购物车中勾选的商品 4.支付宝支付-1-制作去支付宝的按钮 5.支付宝集成-2-完成 6.网站上线并在QQ互联中创建一个APP 7.QQ登录集成完成 第十二天 1.后台分类筛选属性的添加 2.后台分类筛选属性修改完成 3.搜索页面中获取搜索的分类下的筛选属性 4.搜索页面价格与属性的获取完成 5.获取商品销量和评论数并根据价格和分类搜索商品 6.商品的排序 7.商品属性的搜索 附件:课程全部资料(课件+源码) 模板 二、ThinkPHP3.2框架加强 ThinkPHP基础加强 01-搭建应用 02-前台页面搭建 03-后台页面搭建 04-布局设置 05-验证码制作并显示 06-验证码校验 07-验证用户名 08-后台管理员登录系统实现 09-附件上传(商品的添加和展示) 10-附件上传逻辑 11-制作缩略图 12-自定义工具类实现分页效果 13-前台用户注册效果 14-单验证和自动完成 15-redis案例存储-最新登录的前5个用户 ThinkPHP RBAC讲解 01-RBAC-介绍(已加密) 02-RBAC-数据模拟 03-RBAC-不同用户登录系统显示对应权限 04-RBAC-给admin开放绝对权限 05-RBAC-分配权限单展示 06-RBAC-角色分配权限-收集单信息 07-RBAC-显示默认拥有的权限 08-RBAC-权限列展示 09-RBAC-添加权限实现 10-RBAC-访问权限控制 11-RBAC-禁止未登陆用户访问系统 12-RBAC-tp框架使用jquery
ShopXO 企业级B2C免费开源电商系统! 求实进取、创新专注、自主研发、国内领先企业级B2C电商系统解决方案。 遵循Apache2开源协议发布,无需授权、可商用、可二次开发、满足99%的电商运营需求。 PC+H5、支付宝小程序、微信小程序、百度小程序、头条&抖音小程序、QQ小程序。 部分功能特点 1. 多种模式(销售+自提+虚拟+展示+销售/自提) 2. 分销(可配置1~3级、分享赚取佣金、小程序商品海报、取货点、佣金可配置具体到SKU(比例和固定金额)) 3. 会员等级(等级折扣(具体到商品规格)、满减、手动设置会员等级、付费购买+续费+三级返佣) 4. 限时秒杀(独立秒杀中心、商品详情秒杀倒计时、自动开始结束) 5. 优惠券/折扣劵(满减劵、折扣劵、注册送、用户领取、管理员发放) 6. 报价单(商品报价单excel导出、在线打印、自定义字段及拖拽排序) 7. 商品相册标签(给商品相册打上特有标签) 8. 钱包(用户钱包,在线充值,提现) 9. 多端小程序(微信、支付宝、百度、头条/抖音、QQ) 等等...   更多查看应用商店 后端 基于ThinkPHP v5.1、ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持。 扩展性 独立模块式开发,完善的注释,易扩展。 安全性 防止sql注入,代码高安全性。 轻量级,高性能 支持多数据库,读写分离,高并发,内置缓存机制。 前端 基于AmazeUI v2.7.2、中国首个开源 HTML5 跨屏前端框架 组件丰富,模块化 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流。 本地化支持 相比国外框架,Amaze UI 关注中文排版,根据用户代理调整字体,实现更好的中文排版效果;兼顾国内主流浏览器及 App 内置浏览器兼容支持。 轻量级,高性能 Amaze UI 面向 HTML5 开发,使用 CSS3 来做动画交互,平滑、高效,更适合移动设备,让 Web 应用更快速载入。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值