通用产品数据格式说明

来自技术开发小组内部wiki
跳转至: 导航搜索

通用产品数据存放格式:

产品规格

商品描述信息,指明这是一个什么样的商品,比如奶瓶或其他别的 <source lang="sql"> CREATE TABLE `fmb_goods_type` (

 `goods_type_id` int(11) NOT NULL AUTO_INCREMENT,
 `goods_type_name` varchar(128) NOT NULL COMMENT '类型名称',
 `available` tinyint(1) NOT NULL DEFAULT '1' COMMENT '类型状态,1可用;0为不可用',
 `update_time` datetime NOT NULL,
 `create_time` datetime NOT NULL,
 PRIMARY KEY (`goods_type_id`)

) ENGINE=InnoDB AUTO_INCREMENT=925 DEFAULT CHARSET=utf8 COMMENT='商品类型' </source>

fmb@www[fmb_new]>select * from fmb_goods_type where goods_type_id =915;
+---------------+-------------------+-----------+---------------------+---------------------+
| goods_type_id | goods_type_name   | available | update_time         | create_time         |
+---------------+-------------------+-----------+---------------------+---------------------+
|           915 | 有效期--票种      |         1 | 2015-09-02 14:34:54 | 2015-09-02 11:12:13 |
+---------------+-------------------+-----------+---------------------+---------------------+

与具体的票务关联

fmb_group_tickets表中的goods_type_id 会与上述表中的 fmb_goods_type中的goods_type_id进行相关联  


fmb_goods_type_attr 表描述了一个商品拥有的属性名称,目前只支持2个属性设置

<source lang="sql"> CREATE TABLE `fmb_goods_type_attr` (

 `goods_type_attr_id` int(11) NOT NULL AUTO_INCREMENT,
 `goods_type_id` int(11) NOT NULL COMMENT '商品类型id',
 `attr_name` varchar(128) NOT NULL COMMENT '属性名称',
 `attr_input_type` varchar(128) NOT NULL DEFAULT 'text' COMMENT '属性输入类型text',
 `attr_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '属性类型:1:普通属性;2:分组属性;3:扩展属性',
 `attr_css` text NOT NULL COMMENT '样式',
 `sort_order` int(11) NOT NULL DEFAULT '0' COMMENT '显示顺序',
 `available` tinyint(1) NOT NULL DEFAULT '1' COMMENT '类型状态,1可用;0为不可用',
 `update_time` datetime NOT NULL,
 `create_time` datetime NOT NULL,
 PRIMARY KEY (`goods_type_attr_id`),
 KEY `goods_type_id` (`goods_type_id`)

) ENGINE=InnoDB AUTO_INCREMENT=1839 DEFAULT CHARSET=utf8 COMMENT='商品类型属性' </source>

fmb@www[fmb_new]>select * from fmb_goods_type_attr where goods_type_id=915;
+--------------------+---------------+-----------+-----------------+-----------+----------+------------+-----------+---------------------+---------------------+
| goods_type_attr_id | goods_type_id | attr_name | attr_input_type | attr_type | attr_css | sort_order | available | update_time         | create_time         |
+--------------------+---------------+-----------+-----------------+-----------+----------+------------+-----------+---------------------+---------------------+
|               1815 |           915 | 有效期    | text            |         1 |          |          1 |         1 | 2015-09-02 13:59:40 | 2015-09-02 11:12:23 |
|               1817 |           915 | 票种      | text            |         1 |          |          0 |         1 | 2015-09-02 11:12:44 | 2015-09-02 11:12:32 |
+--------------------+---------------+-----------+-----------------+-----------+----------+------------+-----------+---------------------+---------------------+

fmb_goods_type_attr_val 表描述了属性对应的值可能有哪些,因为有些属性是共用的,因此对应的属性值可能有很多种不同的值

<source lang="sql"> CREATE TABLE `fmb_goods_type_attr_val` (

 `goods_type_attr_val_id` int(11) NOT NULL AUTO_INCREMENT,
 `goods_type_attr_id` int(11) NOT NULL COMMENT '属性id',
 `attr_val` varchar(256) NOT NULL,
 `available` tinyint(1) NOT NULL DEFAULT '1' COMMENT '类型状态,1可用;0为不可用',
 `update_time` datetime NOT NULL,
 `create_time` datetime NOT NULL,
 PRIMARY KEY (`goods_type_attr_val_id`),
 KEY `goods_type_attr_id` (`goods_type_attr_id`)

) ENGINE=InnoDB AUTO_INCREMENT=16653 DEFAULT CHARSET=utf8 COMMENT='商品类型属性值' </source>

fmb@www[fmb_new]>select * from fmb_goods_type_attr_val where goods_type_attr_id in (1815,1817) order by goods_type_attr_val_id desc limit 6;
+------------------------+--------------------+------------------------------------------------------+-----------+---------------------+---------------------+
| goods_type_attr_val_id | goods_type_attr_id | attr_val                                             | available | update_time         | create_time         |
+------------------------+--------------------+------------------------------------------------------+-----------+---------------------+---------------------+
|                  16651 |               1817 | VIP票                                                |         1 | 2016-08-10 14:19:28 | 2016-08-10 14:19:28 |
|                  16649 |               1817 | 预售票                                               |         1 | 2016-08-10 14:19:28 | 2016-08-10 14:19:28 |
|                  16647 |               1815 | 2016年9月10日-12月11日 10:00-21:00                   |         1 | 2016-08-10 14:19:28 | 2016-08-10 14:19:28 |
|                  16645 |               16
|                  16643 |               1815 | 2016年8月21日(周日)14:00-16:00                     |         1 | 2016-08-10 11:22:18 | 2016-08-10 11:22:18 |
|                  16641 |               1817 | 玩•艺夏|拳击也可以很优雅(双人价)                   |         1 | 2016-08-10 11:21:27 | 2016-08-10 11:21:27 |
+------------------------+--------------------+------------------------------------------------------+-----------+---------------------+---------------------+

后台新增票种逻辑,根据上述的两种属性的可选值,进行笛卡尔积的排列组合,生成新的票种到fmb_tickets表中

在上述生成票种后,需要记录该票种与属性间的绑定关系,用户在前台进行查询显示

<source lang="sql"> CREATE TABLE `fmb_goods_attr_val` (

 `goods_attr_id` int(11) NOT NULL AUTO_INCREMENT,
 `goods_id` int(11) NOT NULL COMMENT '商品id',
 `attr_id` int(11) NOT NULL COMMENT '属性id',
 `attr_name` varchar(64) NOT NULL COMMENT '属性名称',
 `attr_value` varchar(1024) NOT NULL COMMENT '属性值',
 `create_time` datetime NOT NULL,
 `update_time` datetime NOT NULL,
 PRIMARY KEY (`goods_attr_id`),
 KEY `goods_id` (`goods_id`),
 KEY `attr_id` (`attr_id`)

) ENGINE=InnoDB AUTO_INCREMENT=37275 DEFAULT CHARSET=utf8 COMMENT='商品的属性值' </source>

fmb@www[fmb_new]>select * from fmb_goods_attr_val where goods_id=164181;
+---------------+----------+---------+-----------+-----------------------------------------+---------------------+---------------------+
| goods_attr_id | goods_id | attr_id | attr_name | attr_value                              | create_time         | update_time         |
+---------------+----------+---------+-----------+-----------------------------------------+---------------------+---------------------+
|         37271 |   164181 |    1815 | 有效期    | 2016年9月10日-12月11日 10:00-21:00      | 2016-08-10 14:19:28 | 2016-08-10 14:19:28 |
|         37273 |   164181 |    1817 | 票种      | VIP票                                   | 2016-08-10 14:19:28 | 2016-08-10 14:19:28 |
+---------------+----------+---------+-----------+-----------------------------------------+---------------------+---------------------+

前台根据每种属性值的不同,进行排重分组组合处理,进行用户购买选择展示