MySQL数据表设计 系统的营销功能 优惠券、客户使用优惠券的设计
系统的营销功能
营销功能概述:
系统的营销功能主要是:市场活动管理、营销自动化、销售线索管理以及数据分析和报告等。ToC(Consumer):面向个人消费者,满足日常消费需求。
优惠券的种类:
ToC的系统中,经常需要使用优惠券搞营销活动,而优惠券的种类一般分为:1、抵扣券(现金券),2、折扣券,3、满减券。
抵扣券的含义:客户的订单需要支付10块,抵扣券面值5块,客户就使用这个抵扣券后再支付5块。
折扣券的含义:客户的订单需要支付10块,折扣券打5折,客户就使用这个折扣券后再支付5块。
满减券的含义:客户的订单需要支付10块,满减券为满10减5,客户就使用这个满减券后再支付5块。
优惠券的主体:
优惠券隶属于谁,谁发放优惠券,ToC的系统中,经常有多个加盟商,这个优惠券可能是隶属于某个加盟商,也可能是平台。
客户使用优惠券:
营销、促销此类的活动,通常让利于客户,手段通常是优惠券,有了优惠券后需要给到客户,这里给到,可能是系统了发放给了客户(后台用户发放),也可能是低价售出(订单方式)。
优惠券是有价的:
优惠券是有价的,在支付时,是当钱花的,当设定好一个营销活动时,除了时间范围,还有需要的计算出来的有所的费用。
系统在接入支付功能时,往往是第三方提供,有的本身就包含了结算、分账这些功能,往往可能会出现分账时金额不够导致失败。
第三方的支付系统,往往提供:钱包(备用金账户),各个主体之间进的账户,按合作进行分层,当备用金余额不够充足,优惠力度过大,导致分账时金额不足,也需要引起注意。
数据库表设计
活动表:某个时间段针对客户搞一个营销活动,需要记录是什么样的活动,多长时间,总计花费多少钱。
CREATE TABLE `t_activity` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`name` VARCHAR(200) NULL DEFAULT NULL COMMENT '活动的名称' COLLATE 'utf8mb4_general_ci',`start_time` TIMESTAMP NULL DEFAULT NULL COMMENT '活动的起始时间',`end_time` TIMESTAMP NULL DEFAULT NULL COMMENT '活动的结束时间',`status` TINYINT(4) NULL DEFAULT NULL COMMENT '状态:0、初始化,1、启动,2、完成',`explain` TEXT NULL DEFAULT NULL COMMENT '活动说明' COLLATE 'utf8mb4_general_ci',`director` INT(11) NULL DEFAULT NULL COMMENT '责任人ID',`director_name` INT(11) NULL DEFAULT NULL COMMENT '责任人名称',`required_fees` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '开始前所需的费用',`finished_fees` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '结束后使用了的费用',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '创建人' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',`update_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '更新人' COLLATE 'utf8mb4_general_ci',`update_time` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否删除:0,未删除,1,已删除',`delete_user` VARCHAR(50) NULL DEFAULT NULL COMMENT '删除人' COLLATE 'utf8mb4_general_ci',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',PRIMARY KEY (`id`) USING BTREE
)
COMMENT='活动表'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
优惠券表:活动的体现形式就是优惠券,优惠券是有价的,且有数量的。
CREATE TABLE `t_coupon` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',`grade` TINYINT(4) NULL DEFAULT NULL COMMENT '优惠券级别:1,平台优惠券、2,加盟商优惠券',`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '优惠券名称' COLLATE 'utf8mb4_general_ci',`type` TINYINT(4) NULL DEFAULT NULL COMMENT '优惠券类型(1、抵扣券(现金券),2、折扣券,3、满减券)',`type_name` TINYINT(4) NULL DEFAULT NULL COMMENT '优惠券类型名称',`cash_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '抵扣券(现金券),抵扣金额',`cash_discount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '折扣券,打折比例',`full_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '满多少金额',`subtract_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '减多少金额',`explain` TEXT NULL DEFAULT NULL COMMENT '使用说明' COLLATE 'utf8mb4_general_ci',`inventory_quantity` INT(11) NULL DEFAULT NULL COMMENT '库存数量',`remaining_quantity` INT(11) NULL DEFAULT NULL COMMENT '现存数量',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '创建用户' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',`update_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '更新用户' COLLATE 'utf8mb4_general_ci',`update_time` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否删除:0,未删除,1,已删除',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',`delete_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '删除用户' COLLATE 'utf8mb4_general_ci',PRIMARY KEY (`id`) USING BTREE,INDEX `grade` (`grade`) USING BTREE,INDEX `type` (`type`) USING BTREE,INDEX `franchisee_id` (`franchisee_id`) USING BTREE
)
COMMENT='优惠券'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
优惠券流转表:活动时针对客户的,流转表记录的是优惠券如何给到客户的,可能是后台用户主动发给客户,也可能是客户低价购买到自己手中,也可能是别的什么方式。
CREATE TABLE `t_coupon_flow` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`flow_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '流转编号' COLLATE 'utf8mb4_general_ci',`method` VARCHAR(50) NULL DEFAULT NULL COMMENT '流转方式' COLLATE 'utf8mb4_general_ci',`customer_id` BIGINT(20) NULL DEFAULT NULL COMMENT '客户ID',`status` TINYINT(4) NULL DEFAULT NULL COMMENT '流转状态:0:新建,1:完成',`remarks` VARCHAR(200) NULL DEFAULT NULL COMMENT '备注' COLLATE 'utf8mb4_general_ci',`content` TEXT NULL DEFAULT NULL COMMENT '操作内容' COLLATE 'utf8mb4_general_ci',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '创建用户' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',`modify_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '修改用户' COLLATE 'utf8mb4_general_ci',`modify_time` TIMESTAMP NULL DEFAULT NULL COMMENT '修改时间',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否删除:0,未删除,1,已删除',`delete_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '删除用户' COLLATE 'utf8mb4_general_ci',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',PRIMARY KEY (`id`) USING BTREE,UNIQUE INDEX `flow_no` (`flow_no`) USING BTREE,INDEX `status` (`status`) USING BTREE
)
COMMENT='优惠券流转表'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;
客户优惠券表: 通过某种方法优惠券到了客户手中,也就是所属客户了,优惠券是一张一张的体现的,通过状态来标定客户是否使用。
CREATE TABLE `t_customer_coupon` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`flow_id` BIGINT(20) NULL DEFAULT NULL COMMENT '流转ID',`flow_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '流转编号' COLLATE 'utf8mb4_general_ci',`customer_id` BIGINT(20) NULL DEFAULT NULL COMMENT '客户ID',`coupon_id` BIGINT(20) NULL DEFAULT NULL COMMENT '优惠券ID',`coupon_franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',`coupon_grade` TINYINT(4) NULL DEFAULT NULL COMMENT '优惠券级别:1,平台优惠券、2,加盟商优惠券',`coupon_type` TINYINT(4) NULL DEFAULT NULL COMMENT '优惠券类型(1、抵扣券(现金券),2、折扣券,3、满减券)',`coupon_attributes` TEXT NULL DEFAULT NULL COMMENT '优惠券属性(原来优惠券的属性)' COLLATE 'utf8mb4_general_ci',`cash_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '优惠券减免金额',`status` TINYINT(4) NULL DEFAULT NULL COMMENT '状态:0,未生效,1,未使用,2:已使用',`create_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '创建人' COLLATE 'utf8mb4_general_ci',`create_time` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',`update_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '更新人' COLLATE 'utf8mb4_general_ci',`update_time` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',`logic_deleted` TINYINT(4) NULL DEFAULT NULL COMMENT '是否删除:0,未删除,1,已删除',`delete_user` VARCHAR(100) NULL DEFAULT NULL COMMENT '删除人' COLLATE 'utf8mb4_general_ci',`delete_time` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',PRIMARY KEY (`id`) USING BTREE,INDEX `customer_id` (`customer_id`) USING BTREE,INDEX `coupon_id` (`coupon_id`) USING BTREE,INDEX `status` (`status`) USING BTREE
)
COMMENT='客户优惠券'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;