美文网首页
2018-04-24

2018-04-24

作者: mo_陌上花开 | 来源:发表于2018-04-24 12:26 被阅读0次

    商品模块-数据库-表设计

    表关系:
    分类表 <= 商品表 <= SKU表(库存表)
    分类表 <= 属性名 <= 属性值
    商品表 <= 商品和属性关系表 => 属性名|属性值


    业务逻辑:
    1.同一商品不同SKU库存和售价不同.
    2.不同类型的商品具有不同的属性名和属性值(如汽车和服饰),所以属性需要支持后期添加和维护.
    3.在某个商品分类下通过属性筛选商品.
    4.商家某件商品的销量统计,该件商品内几个不同SKU的销量统计.


    ####分析模块
    分类表:
    (商品分类编号, 分类名称, 父分类编号)
    (1, 男装, 0)
    (2, 裤子, 1)
    (3, 外套, 1)
    (4, 内裤, 1)
    (5, 袜子, 1)
    
    商品表:
    (商品编号, 商品名称, 商品分类编号, 卖家编号, SPU销量, 评论数)
    (1, '裤子名', 2, 1, 0)
    (2, '外套名', 3, 1, 0)
    (3, '内裤名', 4, 1, 0)
    (4, '袜子名', 5, 1, 0)
    
    SKU表(库存表):
    (SKU编号, 商品编号, SKU属性, 价格, 库存, SKU销量)
    (1, 1, [1:1,2:3], 99, 400, 0) 其中 [1:1,2:3] 表示 "颜色为黑色,尺码为X"
    (2, 1, [1:1,2:4], 99, 200, 0) 其中 [1:1,2:4] 表示 "颜色为黑色,尺码为XL"
    (3, 1, [1:2,2:3], 99, 300, 0) 其中 [1:2,2:3] 表示 "颜色为白色,尺码为X"
    (4, 1, [1:2,2:4], 99, 100, 0) 其中 [1:2,2:4] 表示 "颜色为白色,尺码为XL"
    上面只列出商品1这个分类的4个SKU.
    
    属性名:
    (属性名编号, 属性名, 商品分类编号, 父属性编号)
    (1, 颜色, 2, 0)
    (2, 尺码, 2, 0)
    (3, 品牌, 2, 0)
    上面只列出裤子这个分类的3个属性名.
    
    属性值:
    (属性值编号, 属性值, 属性名编号)
    (1, 黑色, 1)
    (2, 白色, 1)
    (3, X,  2)
    (4, XL, 2)
    (5, 七匹狼, 3)
    (6, 九牧王, 3)
    上面只列出裤子这个分类的6个属性值.
    
    商品和属性关系表:
    (自增编号, 商品编号, 属性名编号, 属性值编号)
    (1, 1, 1, 1) 商品1颜色为黑色
    (2, 1, 1, 2) 商品1颜色为白色
    (3, 1, 2, 3) 商品1尺码为X
    (4, 1, 2, 4) 商品1尺码为XL
    上面只列出商品1的4个属性关系.
    
    商品和属性筛选表:
    (商品编号, 商品具有的属性值编号)
    (1, [1,2,3,4])
    用SQL全文检索实现筛选.
    如:
    select * from 商品表 
    inner join 商品和属性筛选表 
    on 商品表.商品编号 = 商品和属性筛选表.商品编号
    where 商品表.商品分类编号 = 2 
    and 商品和属性筛选表.商品具有的属性值编号 MATCH '1 3'
    order by 商品表.评论数 DESC LIMIT 10 OFFSET 20;
    
    商品搜索表:
    (商品编号, 商品标题和内容)
    (1, [无需词典,二元分词])
    用SQL全文检索实现搜索.
    

    Django实现模块

    #(分类表)
    class Classify(models.Model):
        #商品分类编号
        P_GFID = models.AutoField(primary_key=True)
        #分类名称
        classifyname = models.CharField(max_length=20)
        #父分类编号
        parent_number = models.CharField(max_length=10)
    #(商品表)
    class Goods(models.Model):
        #商品编号
        productid = models.AutoField(primary_key=True)
        #商品名称
        productname = models.CharField(max_length=50)
        #商品分类编号
        P_GFID = models.ForeignKey('Classify', on_delete=models.CASCADE)
        #卖家编号(该店铺为自营店)
        sellernumber = models.BooleanField(True)
        #SPU是标准化产品单元,区分品种;SKU是库存量单位,区分单品;商品特指与商家有关的商品,可对应多个SKU
        #SPU销量
        SPUsales = models.CharField(max_length=20)
    #(库存表)
    class SKU(models.Model):
        #库存编号
        SKUid = models.AutoField(primary_key=True)
        #商品编号
        productid = models.ForeignKey('Goods',on_delete=models.CASCADE)
        #SKU属性
        SKUattribute = models.CharField(max_length=20)
        #商品价格
        price = models.CharField(max_length=10)
        #剩余库存
        inventory = models.CharField(max_length=20)
        #SKU销量
        SKUsales = models.CharField(max_length=20)
        
    #(属性名)
    class Property_name(models.Model):
        #属性名编号
        propertyname_id = models.AutoField(primary_key=True)
        #属性名
        property_name = models.CharField(max_length=20)
        # 商品分类编号
        P_GFID = models.ForeignKey('Classify', on_delete=models.CASCADE)
        #父属性编号
        parent_number = models.CharField(max_length=10)
        
    #(属性值)
    class Property_values(models.Model):
        #属性值编号
        propertyvalues_id = models.AutoField(primary_key=True)
        #属性值
        property_values = models.CharField(max_length=20)
        # 属性名编号
        propertyname_id = models.ForeignKey('Property_name', on_delete=models.CASCADE)
        
    #(商品和属性关系表)
    class Goods_Property(models.Model):
        #商品和属性关系表编号
        goods_property_id = models.AutoField(primary_key=True)
        # 商品编号
        productid = models.ForeignKey('Goods', on_delete=models.CASCADE)
        # 属性名编号
        propertyname_id = models.ForeignKey('Property_name', on_delete=models.CASCADE)
        # 属性值编号
        propertyvalues_id = models.ForeignKey('Property_values', on_delete=models.CASCADE)
    

    相关文章

      网友评论

          本文标题:2018-04-24

          本文链接:https://www.haomeiwen.com/subject/zpadlftx.html