码迷,mamicode.com
首页 > 其他好文 > 详细

商品分类表设计

时间:2016-05-09 14:04:25      阅读:474      评论:0      收藏:0      [点我收藏+]

标签:

所要做的业务如下图所示:

技术分享

表设计有两种方法:

方法1:

商品分类表(category)

包括字段:id, name, parentId

注:id为自增,第一级的父类ID设计为0。

商品与分类关联表(product_category)

包括字段:id, product, category

注:商品在添加时,与最后一级分类关联,但在存储时,要把所有的一级二级分类等都关联进来。

表数据如下:

id name parentId
1 服装 0
2 女装 1
3 男装 1
4 数码 0

方法2:

商品分类表(sku_scene_type)

包括字段:id, name

注:id为手动设置,两位表示一级

商品与分类关联表(product_category)

包括字段:id, product, category

注:商品在添加时,只需与最后一级分类关联。

表数据如下:

id name
100000 服装
100100 女装
100200 男装
200000 数码

商品分类数据添加语句:

 1 <insert id="insertByParenCode">
 2     insert into sku_scene_type
 3     <trim prefix="(" suffix=")" suffixOverrides=",">
 4       <if test="type.id != null">
 5         id,
 6       </if>
 7       typeCode,
 8       <if test="type.typeName != null">
 9         typeName,
10       </if>
11       <if test="type.typeDate != null">
12         typeDate,
13       </if>
14       <if test="type.operator != null">
15         operator,
16       </if>
17       <if test="type.modifyDate != null">
18         modifyDate,
19       </if>
20       <if test="type.typeStatus != null">
21         typeStatus,
22       </if>
23     </trim>
24     SELECT
25     <trim prefix=" " suffix=" " suffixOverrides=",">
26       <if test="type.id != null">
27         #{type.id,jdbcType=INTEGER},
28       </if>
29       <choose>
30         <when test="parentCode != null and parentCode != 0">
31           ifnull(MAX(typeCode), #{parentCode}) + 1,
32         </when>
33         <otherwise>
34           ifnull(MAX(typeCode) + 100, 1000),
35         </otherwise>
36       </choose>
37       <if test="type.typeName != null">
38         #{type.typeName,jdbcType=VARCHAR},
39       </if>
40       <if test="type.typeDate != null">
41         #{type.typeDate,jdbcType=TIMESTAMP},
42       </if>
43       <if test="type.operator != null">
44         #{type.operator,jdbcType=BIGINT},
45       </if>
46       <if test="type.modifyDate != null">
47         #{type.modifyDate,jdbcType=TIMESTAMP},
48       </if>
49       <if test="type.typeStatus != null">
50         #{type.typeStatus,jdbcType=CHAR},
51       </if>
52     </trim>
53     from sku_scene_type
54     <where>
55       <choose>
56         <when test="parentCode != null and parentCode != 0">
57           typeCode MOD 100 != 0 AND (#{parentCode} DIV 100 = typeCode DIV 100)
58         </when>
59         <otherwise>
60           typeCode MOD 100 = 0
61         </otherwise>
62       </choose>
63     </where>
64   </insert>

 

注:mysql中判断为空用 ifnull(),整除用DIV,求余用MOD

 

商品分类表设计

标签:

原文地址:http://www.cnblogs.com/luyanliang/p/5473495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!