php商城数据库的设计 之无限分类
商品分类,使用无限分类
即:

-------如何创建数据表


pid---父级分类id,如果是顶级分类则为0
path---1,用户分类的排序 。
排序示例:

实现逻辑:获取type表的所有分类,order by path , 得到了type列表,然后path有几个逗号就加几个---,
这样,父级分类下就是子级分类,子级分类下是孙级分类,分类得到了有效的排序。
2,点击父级分类,展示所有它和它的所有子级分类所辖的商品
实现逻辑: 子级分类的path like %父级分类的path%,再通过where的or语句(where (id=1 or id=2) ),可以实现点击父级分类,显示它和它所有子级分类的商品
level---表示当前分类是几级分类,一般用于展示
sql代码
商品表
create table goods(
id int unsigned auto_increment primary key,
goods_type_id int unsigned not null default 0 comment '商品分类外键',
brand_id int unsigned not null default 0 comment '品牌外键',
name varchar(100) not null default '' comment '商品名称',
title varchar(255) not null default '' comment '商品标题',
img varchar(150) not null default '' comment '商品缩略图', old_price decimal(10,2) unsigned not null default 0 comment '原价',
pricr decimal(10,2) unsigned not null default 0 comment '售价',
stock int unsigned not null default 0 comment '库存',
warnstock int unsigned not null default 0 comment '预警库存' , status tinyint unsigned not null default 0 comment '商品状态 ,1-在售 0-下架', sell_num int unsigned not null default 0 comment '销量', detail varchar(999) not null default '' comment '商品详情', create_time int(10) unsigned not null default 0 comment '商品创建时间',
update_time int(10) unsigned not null default 0 comment '商品更新时间' ) 无限分类
create table goods_type(
id int unsigned auto_increment primary key,
name varchar(20) not null default '' comment '分类名',
pid int unsigned not null default 0 comment '父级分类id(0:顶级分类)',
path varchar(20) not null default '' comment '分类路径(排序)',
level int unsigned not null default 0 comment '分类等级(1:顶级分类)'
) 品牌表
create table brand(
id int unsigned auto_increment primary key,
name varchar(20) not null default '' comment '品牌名',
logo_img varchar(150) not null default '' comment '品牌logo图',
info varchar(255) not null default '' comment '品牌简介',
create_time int(10) unsigned not null default 0 comment '品牌创建时间',
update_time int(10) unsigned not null default 0 comment '品牌更新时间'
)
goods:

brand:

goods_type:

php商城数据库的设计 之无限分类的更多相关文章
- php不用递归完成无限分类,从表设计入手完整演示过程
无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, ...
- ThinkPHP无限分类模块设计
public function catelist(){ $cate=D('Cate'); //var_dump($cate->gettree());exit; $cateres=$cate-&g ...
- PHP实现无限分类
PHP实现无限分类 无限分类 递归 无限级分类是一种设计技巧,在开发中经常使用,例如:网站目录.部门结构.文章分类.笔者觉得它在对于设计表的层级结构上面发挥很大的作用,比如大家在一些平台上面,填写邀请 ...
- SQL Server 进阶 01 数据库的设计
SQL Server 进阶 01 数据库的设计 本篇目录 课程内容回顾及介绍 为什么需要规范的数据库设计 设计数据库的步骤 绘制E-R(实体-关系)图 实体-关系模型 如何将E-R图转换为表 数据规范 ...
- 数据库schema设计与优化
原文地址 1. 前言 对于数据库而言,在日常开发中我们主要的关注点有两块,一个是schema的结构设计,另一个就是索引的优化,这两块是影响我们最终系统结构和性能的关键部分,自然也是我们花费精力最多的部 ...
- MySql无限分类数据结构--预排序遍历树算法
MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多. 我们最常见最简单的方法就是在MySql里ID ,parentID, ...
- PHP+Mysql无限分类的方法汇总
无限分类是个老话题了,来看看PHP结合Mysql如何实现.第一种方法这种方法是很常见.很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid in ...
- PHP无限分类分类导航LINK的代码实现
1. 代码数据库的结构: 2.要达到的效果 /** * @param php无限分类分类导航LINK的代码实现 */ include('db.inc.php'); function getCatePa ...
- php三种无限分类
无限分类,是指从一个最高分类开始,每个子分类都可以分出自己的若干个子分类,可以一直分下去,称为无限级分类: 下面是对省市县的无限极分类的列子.数据库如图: 代码示例如下: /** * @Descrip ...
随机推荐
- Oracle 12c 如何在 PDB 中添加 SCOTT 模式(数据泵方式)
Oracle 12c 建库后,没有 scott 模式,本篇使用数据泵方式,在12c版本之前数据库中 expdp 导出 scott 模式,并连接 12c 的 pdb 进行 impdp 导入. 目录 1. ...
- WebGL_0001:3D页面的重置分辨率和横竖屏事件
1,事件 重置分辩率事件 window.addEventListener("resize", a, !1) 横竖屏切换事件 window.addEventListener(&quo ...
- php文件上传与下载(附封装好的函数文件)
单文件上传前端页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- CSS隐藏元素的五种方法
1.opacity:0 2.visibility:hidden 3.diaplay:none 4.position:absolute display display属性依照词义真正隐藏元素.将disp ...
- 51 nod1067 Bash游戏 V2(sg函数打表)
1067 Bash游戏 V2 1.0 秒 131,072.0 KB 5 分 1级题 有一堆石子共有N个.A B两个人轮流拿,A先拿.每次只能拿1,3,4颗,拿到最后1颗石子的人获胜.假设A B都非 ...
- Git仓库创建---克隆仓库---初始提交代码
1.在Git上创建仓库,添加成员,默认分支是“master”,仓库路径假设为http://192.168.1.1/root/project.git 2.在sourceTree上,点击“克隆”,输入上面 ...
- C语言移除链表元素
删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4 ...
- 使用node搭建静态资源服务器
安装 npm install yumu-static-server -g 使用 shift+鼠标右键 在此处打开Powershell 窗口 server # 会在当前目录下启动一个静态资源服务器,默 ...
- 2.restEasy中@PathParam和@QueryParam的区别
例如代码: @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) public T query(@PathParam( ...
- vscode+vue 一些基本操作
1.安装好 vscode 和 node.js 安装node.js是为了用npm(管理项目依赖) 2.调出终端 crtl +~ , 3.终端全局安装 vue-cli 安装整个脚手架,能快速给我们构建v ...