通用产品数据格式说明
来自技术开发小组内部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 | +---------------+----------+---------+-----------+-----------------------------------------+---------------------+---------------------+