MySQL数据表设计 系统的营销功能 期卡功能和次卡功能的设计

系统的营销功能

期卡和次卡

期卡,特定类型的预付卡或会员卡,用于特定场合或服务领域,是消费者预先支付一定费用以获得一定期限内的服务资格或优惠权益的凭证。 
次卡,可以多次使用的卡片,通常具有某种特定的功能或权益。

期卡(期限卡):

计费方式‌:按时间周期计费,如月卡、季卡、年卡等,通常包含固定次数或不限次数使用权限。 ‌

‌适用场景‌:适合需要长期高频使用的场景,如健身房、游泳馆等。

‌规则示例‌:地铁年卡可不限次数乘坐地铁,有效期1年;游泳馆月卡允许会员在1个月内不限次数进出。

次卡(计次卡):

计费方式‌:按次数计费,如:30次卡、50次卡等,每次使用扣除1次。 ‌

‌适用场景‌:适合服务或商品需要按次消费的场所,如:洗车店、奶茶店等。 ‌

‌规则示例‌:地铁计次卡包含30次或50次乘车机会,用完即止。

数据库表设计

期卡和次卡实体表

CREATE TABLE `t_future_card` (
	`id` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '主键',
	`franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',
	`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '期卡名称' COLLATE 'utf8mb4_general_ci',
	`grade` TINYINT(4) NULL DEFAULT NULL COMMENT '期卡级别:1,平台期卡、2,加盟商期卡',
	`describe` TEXT NULL DEFAULT NULL COMMENT '期卡描述' COLLATE 'utf8mb4_general_ci',
	`use_start_time` TIMESTAMP NULL DEFAULT NULL COMMENT '使用起始时间',
	`user_end_time` TIMESTAMP NULL DEFAULT NULL COMMENT '使用结束时间',
	`effective_day` INT(11) NULL DEFAULT NULL COMMENT '有效天',
	`par_price` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '票面价格',
	`purchase_price` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '购买价格',
	`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_user` VARCHAR(100) 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_times_card` (
	`id` BIGINT(20) NOT NULL DEFAULT '0' COMMENT '主键',
	`franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',
	`name` VARCHAR(50) NULL DEFAULT NULL COMMENT '次卡名称' COLLATE 'utf8mb4_general_ci',
	`grade` TINYINT(4) NULL DEFAULT NULL COMMENT '次卡级别:1,平台次卡、2,加盟商次卡',
	`describe` TEXT NULL DEFAULT NULL COMMENT '次卡描述' COLLATE 'utf8mb4_general_ci',
	`use_start_time` TIMESTAMP NULL DEFAULT NULL COMMENT '使用起始时间',
	`user_end_time` TIMESTAMP NULL DEFAULT NULL COMMENT '使用结束时间',
	`effective_day` INT(11) NULL DEFAULT NULL COMMENT '有效天数',
	`par_price` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '票面价格',
	`use_times` INT(11) NULL DEFAULT NULL COMMENT '使用次数',
	`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_user` VARCHAR(100) 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_card_order` (
	`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
	`order_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '订单编号' COLLATE 'utf8mb4_general_ci',
	`method` VARCHAR(10) NULL DEFAULT NULL COMMENT '订单方式' COLLATE 'utf8mb4_general_ci',
	`card_type` TINYINT(4) NULL DEFAULT NULL COMMENT '类型:1、期卡,2、次卡',
	`customer_id` INT(11) NULL DEFAULT NULL COMMENT '客户ID',
	`total_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '总金额',
	`payment_type` TINYINT(4) NULL DEFAULT NULL COMMENT '支付类型',
	`payment_amount` DECIMAL(10,0) NULL DEFAULT NULL COMMENT '支付金额',
	`order_status` TINYINT(4) NULL DEFAULT NULL COMMENT '订单状态',
	`remarks` VARCHAR(50) 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 '创建时间',
	`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,
	UNIQUE INDEX `order_no` (`order_no`) USING BTREE
)
COMMENT='客户购买卡的订单'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

客户所属的期卡和次卡表:

CREATE TABLE `t_customer_future_card` (
	`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
	`customer_id` INT(11) NULL DEFAULT NULL COMMENT '客户ID',
	`order_id` BIGINT(20) NULL DEFAULT NULL COMMENT '订单ID',
	`order_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '订单编号' COLLATE 'utf8mb4_general_ci',
	`card_id` INT(11) NULL DEFAULT NULL COMMENT '卡的ID',
	`card_grade` TINYINT(4) NULL DEFAULT NULL COMMENT '期卡级别:1,平台期卡、2,加盟商期卡',
	`card_franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',
	`card_total_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '卡的总金额',
	`card_attributes` TEXT NULL DEFAULT NULL COMMENT '卡的属性' COLLATE 'utf8mb4_general_ci',
	`use_total_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '已使用金额',
	`status` TINYINT(4) NULL DEFAULT NULL COMMENT '状态:0,未生效,1,生效',
	`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
)
COMMENT='客户期卡'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;


CREATE TABLE `t_customer_times_card` (
	`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
	`customer_id` INT(11) NULL DEFAULT NULL COMMENT '客户端ID',
	`order_id` BIGINT(20) NULL DEFAULT NULL COMMENT '订单ID',
	`order_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '订单编号' COLLATE 'utf8mb4_general_ci',
	`card_id` INT(11) NULL DEFAULT NULL COMMENT '次卡ID',
	`card_grade` TINYINT(4) NULL DEFAULT NULL COMMENT '次卡级别:1,平台次卡、2,加盟商次卡',
	`card_franchisee_id` BIGINT(20) NULL DEFAULT NULL COMMENT '加盟商ID',
	`card_total_times` INT(5) NULL DEFAULT NULL COMMENT '卡的总次数',
	`card_attributes` TEXT NULL DEFAULT NULL COMMENT '卡的属性' COLLATE 'utf8mb4_general_ci',
	`use_total_times` INT(5) NULL DEFAULT NULL COMMENT '客户已使用次数',
	`status` TINYINT(4) NULL DEFAULT NULL COMMENT '状态:0,未生效,1,生效',
	`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
)
COMMENT='客户次卡表'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

客户使用期卡和次卡的消费记录:

CREATE TABLE `t_customer_future_card_record` (
	`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
	`customer_id` BIGINT(11) NULL DEFAULT NULL COMMENT '客户ID',
	`order_id` BIGINT(20) NULL DEFAULT NULL COMMENT '订单ID',
	`order_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '订单编号' COLLATE 'utf8mb4_general_ci',
	`term_card_id` INT(11) NULL DEFAULT NULL COMMENT '我的期卡ID',
	`use_amount` DECIMAL(10,2) NULL DEFAULT NULL COMMENT '使用的金额',
	`create_user` VARCHAR(50) 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
)
COMMENT='客户期卡使用详细'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;


CREATE TABLE `t_customer_times_card_record` (
	`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
	`customer_id` BIGINT(20) NULL DEFAULT NULL COMMENT '客户ID',
	`order_id` BIGINT(20) NULL DEFAULT NULL COMMENT '订单ID',
	`order_no` VARCHAR(50) NULL DEFAULT NULL COMMENT '订单编号' COLLATE 'utf8mb4_general_ci',
	`times_card_id` BIGINT(20) NULL DEFAULT NULL COMMENT '我的次卡ID',
	`use_time` INT(11) NULL DEFAULT NULL COMMENT '使用次数',
	`create_user` VARCHAR(50) 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
)
COMMENT='客户次卡使用详细'
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
;

你可能感兴趣的:(MySQL数据表设计 系统的营销功能 期卡功能和次卡功能的设计)