促销活动表结果的学习探讨

由于公司产品刚上线,有相关促销活动由于准备不到位而延到下个版本执行.对于促销活动这块的表结构设计,我心里没底,于是我研究了一下;

首先看知乎上观点:

网址如下:

https://www.zhihu.com/question/19807793,摘录部分观点如下:

用户a观点:

以上各位大多是侧重功能和产品方面的,我稍微说点技术和领域建模方面的:
1 促销模型:
-促销基本信息; promotion information [名称,时效性,关联活动,创建者,... ]
-满足条件;qualification [sku, 数量,金额,... ]
-实施优惠; benefit [赠,减,折, ... ]

此模型是目前行业内相对比较典型的做法,扩展性和灵活性足够了;其他不属于模型的特殊促销(极少数情况了),只要额外实现即可。


2 数据关系上,一次促销活动是一个具体的实例,对应到数据库表中的行记录;而常见的10种左右的促销,其实是一个class,或者叫schema ;因此我们可以创建促销模板,以降低促销维护人员的使用门槛。

在实现之前,尽量把设计得细一些,对开发有利;祝你好运!
用户b观点:

 促销模块,从结构上来说分三个部分:限制条件,促销范围,促销结果。然后从每个维度上都有若干玩法,例如:

限制条件:时间,订单金额,购买数量,购买人数,支付方式,收货地址,运输方式,用户类型,积分等等
促销范围:单个商品,一组商品,品类,整单,以及例外品
促销结果:折扣,扣减,返券,买搭,买赠等等

然后,你把三个维度再做一下组合。。。有的玩呢~

最后,需要有一个促销效果汇总的功能,用来记录分析每一个促销活动的实际花费、带来的销售、毛利、转化率等等。用于持续调整促销活动的效果。

实际操作,像前面两位说的,可以基于ecshop、zencart、magento这些开源网店来改,但是也完全可以拆解了之后从头做,如果需要架构很灵活的话。

用户c的建议如下:
国内可以用ecshop,shopex等(假开源也只能先凑合着用了),外贸可以用zencart,prestashop,magento等开源网店,功能都非常先进,里面也自带了很多优惠功能,还可以第行二次开发,非常方便。

前面两位用户的观点,我理解得浅,所以就去下载了ecshop上下载了源码运行,可运行没成功.
后来在http://www.cnblogs.com/lmule/archive/2010/11/05/1869624.html  上找着了ecshop的表结果,
里面关于促销类的表结果,我只找着了一个,如下:
-- 表的结构 `ecs_goods_activity`
CREATE TABLE IF NOT EXISTS `ecs_goods_activity` (
`act_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID号',
`act_name` varchar(255) NOT NULL COMMENT '促销活动的名称',
`act_desc` text NOT NULL COMMENT '促销活动的描述',
`act_type` tinyint(3) unsigned NOT NULL,
`goods_id` mediumint(8) unsigned NOT NULL COMMENT '参加活动的id,取值于ecs_goods的goods_id',
`goods_name` varchar(255) NOT NULL COMMENT '商品的名称,取值于ecs_goods的goods_id',
`start_time` int(10) unsigned NOT NULL COMMENT '活动开始时间',
`end_time` int(10) unsigned NOT NULL COMMENT '活动结束时间',
`is_finished` tinyint(3) unsigned NOT NULL COMMENT '活动是否结束,0,结束;1,未结束',
`ext_info` text NOT NULL COMMENT '序列化后的促销活动的配置信息,包括最低价,最高价,出价幅度,保证金等',
PRIMARY KEY (`act_id`),
KEY `act_name` (`act_name`,`act_type`,`goods_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='拍卖活动和夺宝奇兵活动配置信息表' AUTO_INCREMENT=5 ;

依然不够理解;于是继续寻找:
也找到了关于ecshop的促销表结构,如下:网址:http://blog.csdn.net/chamtianjiao/article/details/6081430

促销活动

Sql代码

 

  1. --   
  2. -- Table structure for table `ecs_favourable_activity`   
  3. --   
  4.   
  5. CREATE TABLE IF NOT EXISTS `ecs_favourable_activity` (   
  6.   `act_id` smallint(5) unsigned NOT NULL auto_increment,---自增id   
  7.   `act_name` varchar(255) NOT NULL,--活动名称   
  8.   `start_time` int(10) unsigned NOT NULL,--开始时间   
  9.   `end_time` int(10) unsigned NOT NULL,--结束时间   
  10.   `user_rank` varchar(255) NOT NULL,--参加的会员等级   
  11.   `act_range` tinyint(3) unsigned NOT NULL,--优惠范围;0,全部商品;1,按分类;2,按品牌;3,按商品   
  12.   `act_range_ext` varchar(255) NOT NULL,--根据优惠活动范围的不同,该处意义不同;但是都是优惠范围的约束;如,如果是商品,该处是商品的id,如果是品牌,该处是品牌的id   
  13.   `min_amount` decimal(10,2) unsigned NOT NULL,--订单达到金额下限,才参加活动   
  14.   `max_amount` decimal(10,2) unsigned NOT NULL,--订单达到金额上限,0表没有   
  15.   `act_type` tinyint(3) unsigned NOT NULL,--参加活动的优惠方式;0,送赠品或优惠购买;1,现金减免;价格打折优惠   
  16.   `act_type_ext` decimal(10,2) unsigned NOT NULL,--如果是送赠品,该处是允许的最大数量,0,无数量限制;现今减免,则是减免金额,单位元;打折,是折扣值,100算,8折就是80   
  17.   `gift` text NOT NULL,--如果有特惠商品,这里是序列化后的特惠商品的id,name,price信息;取值于ecs_goods的goods_id,goods_name,价格是添加活动时填写的   
  18.   `sort_order` tinyint(3) unsigned NOT NULL default '50',--活动在优惠活动页面显示的先后顺序,数字越大越靠后   
  19.   PRIMARY KEY  (`act_id`),   
  20.   KEY `act_name` (`act_name`)   
  21. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;  
从这张表看,比上张表字段要多,似乎满足了大部分促销活动的场合;1.现金减免,2价格打折;3.特惠商品;
其实还是有点蒙,继续找资料:
然后再参考了一下这个资料:http://www.pmcaff.com/article/index/522932721808512














猜你喜欢

转载自blog.csdn.net/hackland2012/article/details/77193866
今日推荐