新零售-优惠券相关数据表设计

-- 优惠券表(代金券、折扣券)
DROP TABLE IF EXISTS `coupon`;
CREATE TABLE `coupon`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '优惠券ID',
  `discount_type` tinyint(1) NOT NULL COMMENT '优惠券类型 1-代金券 2-折扣券',
  `intensity` decimal(10, 2) UNSIGNED NOT NULL COMMENT '优惠力度,如果是代金券,则记录实际代金券金额,如果是折扣券,则记录百分比',
  `use_condition` decimal(10, 2) UNSIGNED NOT NULL COMMENT '订单满多少钱可以使用',
  `max_num` int(11) NOT NULL COMMENT '优惠券发放最大数量',
  `remaining_count` int(11) UNSIGNED NOT NULL COMMENT '该优惠券当前剩余数量',
  `start_date` int(11) unsigned NOT NULL COMMENT '起始日期,记录时间戳',
  `end_date` int(11) unsigned NOT NULL COMMENT '截止日期,记录时间戳',
  `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已被删除 0-未被删除 1-已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COMMENT = '优惠券表(代金券、折扣券)';

-- 优惠券适用商品关联表
DROP TABLE IF EXISTS `coupon_sku_relation`;
CREATE TABLE `user_coupon_record`  (
  `coupon_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '优惠券ID,关联coupon表',
  `sku_sn` varchar(256) NOT NULL COMMENT '商品唯一标识sn,关联product_sku表',
  UNIQUE KEY (`coupon_id`, `sku_sn`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COMMENT = '用户领取优惠券记录表';

-- 用户领取优惠券记录表
DROP TABLE IF EXISTS `user_coupon_record`;
CREATE TABLE `user_coupon_record`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '记录ID',
  `coupon_id` int(10) UNSIGNED NOT NULL COMMENT '优惠券ID,关联coupon表',
  `user_id` int(10) UNSIGNED NOT NULL COMMENT '用户ID,关联user表',
  `coupon_status` tinyint unsigned NOT NULL COMMENT '优惠券状态 1-未使用 2-已使用',
  `is_deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已被删除 0-未被删除 1-已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COMMENT = '用户领取优惠券记录表';