热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

多级商品分类系统设计方案

本文介绍了如何设计一个包含一级、二级和三级分类的商品分类系统。通过具体的SQL语句示例,详细阐述了各分类表的结构及字段含义,同时探讨了平台属性与属性值在商品检索中的应用。

在电子商务系统中,为了更好地组织和展示商品信息,通常需要设计一个多级分类体系。本方案将详细介绍如何构建一个高效且易于扩展的商品分类系统,主要包括三个级别的分类:一级分类、二级分类和三级分类。

例如,在家电类目下,'家用电器'作为一级分类,其下的'电视'则为二级分类,而'超薄电视'则是三级分类。这种多层次的分类方式有助于用户更快速地定位到所需商品。

一级分类示例

二级分类示例



三级分类数据库表结构SQL

CREATE TABLE `category_level_1` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(100) NOT NULL COMMENT '分类名称',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标志',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4 COMMENT='一级分类表';
CREATE TABLE `category_level_2` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(200) NOT NULL COMMENT '分类名称',
`parent_id` BIGINT(20) NOT NULL COMMENT '父级分类ID',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标志',
PRIMARY KEY (`id`),
FOREIGN KEY (`parent_id`) REFERENCES `category_level_1`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8mb4 COMMENT='二级分类表';
CREATE TABLE `category_level_3` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(200) NOT NULL COMMENT '分类名称',
`parent_id` BIGINT(20) NOT NULL COMMENT '父级分类ID',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标志',
PRIMARY KEY (`id`),
FOREIGN KEY (`parent_id`) REFERENCES `category_level_2`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1114 DEFAULT CHARSET=utf8mb4 COMMENT='三级分类表';


此外,为了提高商品的可搜索性和用户体验,还应考虑添加平台属性及其值。这些属性可以包括但不限于品牌、型号、颜色等,它们对于不同分类下的商品有着不同的意义和重要性。

平台属性示例

平台属性值示例



平台属性与属性值表结构SQL

CREATE TABLE `attribute_info` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(100) NOT NULL COMMENT '属性名称',
`category_id` BIGINT(20) NOT NULL COMMENT '所属分类ID',
`category_level` INT(11) NOT NULL COMMENT '分类级别',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标志',
PRIMARY KEY (`id`),
FOREIGN KEY (`category_id`) REFERENCES `category_level_3`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=111 DEFAULT CHARSET=utf8mb4 COMMENT='属性表';
CREATE TABLE `attribute_value` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`value` VARCHAR(100) NOT NULL COMMENT '属性值',
`attribute_id` BIGINT(20) NOT NULL COMMENT '属性ID',
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标志',
PRIMARY KEY (`id`),
FOREIGN KEY (`attribute_id`) REFERENCES `attribute_info`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=180 DEFAULT CHARSET=utf8mb4 COMMENT='属性值表';


推荐阅读
author-avatar
mobiledu2502907423
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有