博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不同分类的商品动态添加属性(吴康彬发表于2009-2-9 10:32:35)
阅读量:4125 次
发布时间:2019-05-25

本文共 1304 字,大约阅读时间需要 4 分钟。

在开发多用户的购物平台时,经常会碰到完全不同类型的几种产品,他们的属性很多都是不一样的。所以,在设计数据库的表字段时,不可能一个个都列出来。因为很多时候,产品的属性都不定的。下面我给大家讲解下,如何给不同分类的商品动态添加属性。

    下面列举下几种不同的产品类型:
    女装、鞋子、手机、游戏卡、化妆品等等
    女装的属性有:颜色、尺码、腰围、胸围、价格、季节、面料、品牌、产地等等
    鞋子的属性有:颜色、尺码、跟高、样式、品牌、季节、材料、价格、产地
    手机的属性有:基本参数、产品外形、拍照功能、娱乐功能、颜色、尺寸、产地、价格、品牌、生产时间等
    化妆品的属性:型号、材质、产地、出厂日期、保质期、品牌、价格、尺寸、规格、颜色等
    看看,就这么几个分类,已经有那么多的属性。大家仔细看看,其实这些属性当中有几个属性是大家都有的,比如:颜色、尺码、价格、产地、品牌等。另外的几个都是私有的属性。
    然后再看,很多属性其实数据是定死的,就是说可以把属性的值列举出来:
    比如说
    颜色:可以分:红色,白色,绿色等。
    产地:浙江杭州、广东广州。
    品牌:携购网、携购独立网店系统等
    我们把这些统称为实例数据,当然相反,也有很多属性我们必须是要手动录入数据的。包括拍照功能、腰围、适合年龄范围等。
    接下去,我们使用C# 的类来讲解具体的设计思路:
    产品类别的类定义:
   public class Category{
      public int m_id; //类别的ID
      public string m_name ; //类别名称
      public string m_root;  //类别的路径,->0->1->2->
      public int m_parent; //父级的Id
      public int m_depth; //路径深度
   }
    类别属性类的定义:
   public class Attribute{
      public int m_id; //属性的ID
      public int m_name ; //属性的名称
      public string m_value; //属性值
      public int m_type; //属性的类型,单行文本,选择框,多选框,多行文本等等。这里可以随便你设置,
   }
    属性实例类的定义:
   public class Instance{
      public int m_id;  //属性实例的ID
      public string m_name;  // 属性实例的名称
      public string m_value;  //属性实例值
      public int m_attributeId;  //属性ID
   }
    最后我们需要定义一个产品类别与属性对应的类:
   public class CateAttribute{
      public int m_id;  //编号ID
      public int m_attributeId;  //属性的ID
      public int m_cateId;   //类别的ID
   }
    有了以上的关系表之后,我们就可以在后台动态、任意的增加属性到对应的类别了。该表(类)的定义由国内优秀的独立购物网店系统供应商ShopXG携购网提供,在这里表示感谢!

转载地址:http://njlpi.baihongyu.com/

你可能感兴趣的文章
JS中如何快速将字符串的“true"和"false"转换成Bool类型
查看>>
微信小程序封装wx.require
查看>>
rest_framework中,序列化显示choices字段的value方法
查看>>
xadmin中根据当前用户自动填写默认值
查看>>
js数组与字符串互相转换
查看>>
pandas DataFrame 转换日期比较时报 Can only use .dt accessor with datetimelike values错误
查看>>
Pandas DataFrame求差集
查看>>
rest_framework,发起retrieve请求时参数带小数点报404错误
查看>>
Vue移动端better-scroll组件中的@click事件失效
查看>>
pandas之DataFrame更改数据的列位置
查看>>
DataFrame索引加1
查看>>
Django自定义用户表时Admin后台密码密文的解决办法
查看>>
Vue页面刷新后store数据丢失
查看>>
无法启动uwsgi,显示No such file or directory [core/utils.c line 3654]
查看>>
nginx接受请求报错failed(13:Permission denied)
查看>>
stylus使用伪类和伪元素的方法
查看>>
Centos8安装mysql8.0遇到No match for argument: mysql-community-server错误
查看>>
Centos8远程连接mysql报You are not allowed to create a user with GRANT错误
查看>>
Centos8 重置mysql8的root密码
查看>>
部署php开发环境遇到的一些坑
查看>>