解决电商程序,不同商品入库,及查询功能的设计方案
来源:互联网 发布:淘宝手机营销软件 编辑:程序博客网 时间:2024/05/22 03:21
商城系统商品属性的数据库设计思路
2012-04-05 15:14 by 少毅, 43 visits, 收藏, 编辑最近看到一个题目,要求提出一套商品属性相关的数据库设计思路,要求是商品属性的类别(例如品牌,尺寸,颜色...)不确定,各个属性类别的属性值(例如品牌可能是HP,IBM...)不确定,同时需要实现针对不同属性类别的商品检索,例如检索出品牌为XX,尺寸为XX,颜色为XX的商品,各条件为AND操作,另外每个属性类别的条件可能为品牌=XX or 品牌 = YY这样的OR操作,最终实现出类似淘宝商品检索页面那样的功能如下(品牌,裤长等条件为AND关系,品牌中的可以选择多个品牌,为OR关系)
经过一番思考,数据库设计如下:
- 属性类别表spec
spec_id —— 属性类别id
spec_name —— 属性类别名称
- 属性值表spec_info
spec_info_id —— 属性值id
spec_id —— 属性类别
spec_info_name —— 属性值名称
- 商品表goods
goods_id —— 商品id
goods_name —— 商品名称
- 商品属性表goods_spec
goods_spec_id —— 商品属性id
goods_id —— 商品id
spec_info_id —— 商品属性值id
建立以上4个数据库后,spec表存放的是品牌,颜色,尺码等的属性名,spec_info表存放的是红色,蓝色,HP,IBM等的实际的属性值,再通过goods_spec表将一个商品跟它的属性进行关联,这样要实现类似淘宝的检索功能的SQL语句就可以编写如下:
假设要检索品牌为IBM或HP(在spec_info表中的spec_info_id 分别为1和2),颜色为红色(在spec_info表中的spec_info_id 为6),尺码为15寸(在spec_info表中的spec_info_id 为5)的商品
$sql = "select * from goods_spec where spec_info_id = 5 and goods_id in (select goods_id from goods_spec where spec_info_id = 6 and goods_id in (select goods_id from goods_spec where spec_info_id = 1 or spec_info_id = 2));
PS: 这些商品的搜索都是基于数据库 SQL 的, 可以看出用户选择了几个条件,最终的 SQL 就会有连几张数据库表的 SELECT 查询。 我已经用红色粗体标出 !!
如果用户选中了 10 个条件, 那么一次搜索将会 10 次 select join (或者子查询) !
- 解决电商程序,不同商品入库,及查询功能的设计方案
- Android开发之TextView中间设置横线,适用于电商项目,商品原价之类的功能。
- Android开发之TextView中间设置横线,适用于电商项目,商品原价之类的功能。
- Android开发之TextView中间设置横线,适用于电商项目,商品原价之类的功能。
- 电商商品模型的设计
- 基于电商消费者评论的商品属性抽取及情感分析
- 电商商品爬虫
- 解决商品订单增加,以及以后的清空功能
- 商品入库、删除
- 一个能实现大部分购买商品功能的程序
- 电商基础概念-商品
- 电商Demo商品分类
- MFC中ListBox实现商品的入库和出库
- Java:实现商品的查找、添加、出库、入库
- 电商系统中的商品模型的分析与设计
- 电商系统中的商品模型的分析与设计
- 电商系统中的商品模型的分析与设计
- 电商系统中的商品模型的分析与设计
- C#交换两个变量的值
- 一大波Java来袭(四)String类、StringBuilder类、StringBuffer类对比
- class file construct
- C++经典书籍解读(转)
- Python 程序员经常犯的 10 个关于Python常见错误
- 解决电商程序,不同商品入库,及查询功能的设计方案
- C++内存分配操作
- 文本相似度算法
- jar是什么
- Essential C++读书笔记
- storm详细介绍
- C++编译程序占用内存分为哪几部分
- 随部分div增高总的div也随着增高
- standby缺损归档的处理