商城开发之商品分类表的设计、使用、管理

前言

其实很久之前就很想写这篇博客,但是由于我的记性差和项目的原因,总是没有写,今天忽然想起来,要是今天不写或许过几天就忘了,于是敲起键盘,写这篇博客。

数据库设计

对于一个项目来说,数据库的设计是一个至关重要的事情,如果数据库设计的不好,

那么往往会让项目变得更加复杂。

category中基本有4个属性

id:分类的唯一标识符

name:分类名

count:当前分类有多少子分类

parent_id:当前分类的父类id

为什么会这样分类呢?我们的商品类别有很多,并且商品分类是分级的,每一级下面又有很多子分类,子分类下面又有子分类,如下图:

通过观察可以发现,它的每一级都是有关联的,所以我们可以通过一个parent_id来让分类相关联,每个分类都有一个父类,parent_id记录了它的父类的id,当在最上层的时候他的父类为0。每一个分类都会有一个count来记录它的有多少子类,在实际用到的时候我们就可以通过count来判断当前分类有多少子类。

实际用例

当我们想要得到我们的电脑下面的所有的商品时

List<Long> resultList = new ArrayList<Long>();
            Category category = categoryDao.findOne(id);//id为当前选择的电脑id
            if (category.getCount() != 0) { //获取当前是否有子分类
                List<Category> list = categoryDao.findCategoryChild(category.getId());//寻找当前category的子分类
                while (flag) { //遍历当前list,找到叶子分类
                    List<Category> tempList = new ArrayList<>();
                    tempList.addAll(list);
                    for (Category myid : tempList) {
                        list.remove(myid);
                        if (myid.getCount() == 0) {
                            resultList.add(myid.getId());
                        } else {
                            List<Category> childList = categoryDao.findCategoryChild(myid.getId());
                            list.addAll(childList);
                        }
                    }

                    if (list.size() == 0)
                        flag = false;
                }
            } else {
                resultList.add(id);
            }


通过这一系列的操作,就可以获得我们某个分类下的叶子分类。

当我们上传商品时我们可以选择我们的商品类别

就像这样,我们每次选择分类的时候都会自动的生成他的下一级菜单,代码如下:

html:

<div id="my_select" style="float: left;margin-left: 14.5%;">
                        <select id="select_first">

                        </select>
                    </div>



js:


var category;//分类信息
var mydiv;
$(function () {
    mydiv = $('#my_select');

    $('#my_select').on('change', "select", function (
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值