admin_system/lajiao_java/sql/DDL/DDL.sql

204 lines
9.5 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

create table lottery_activity
(
activity_id bigint auto_increment comment '活动id'
primary key,
activity_name varchar(100) null comment '活动名称',
start_time datetime null comment '开始时间',
end_time datetime null comment '结束时间',
description text null comment '活动描述',
activity_image varchar(255) null comment '活动图片url',
create_time datetime null comment '创建时间',
update_time datetime null comment '更新时间',
is_active tinyint default 1 null comment '是否启用1-启用0-禁用)'
)
comment '抽奖活动表' collate = utf8mb4_unicode_ci;
create table lottery_activity_award_rela
(
id bigint auto_increment comment '关联id'
primary key,
activity_id bigint not null comment '活动id',
award_id bigint not null comment '奖项id',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
constraint uk_activity_award
unique (activity_id, award_id)
)
comment '活动奖项关联表';
create index idx_activity_id
on lottery_activity_award_rela (activity_id);
create index idx_award_id
on lottery_activity_award_rela (award_id);
create table lottery_award
(
award_id bigint auto_increment comment '奖项id'
primary key,
award_name varchar(100) not null comment '奖项名称',
award_level int default 1 null comment '奖项等级1-一等奖2-二等奖...',
card_nums int default 1 null comment '每个奖项的卡片数量',
valid_days int default 7 null comment '有效天数',
probability varchar(50) default '' null comment '中奖概率(百分比)',
award_image varchar(500) default '' null comment '奖项图片URL',
description varchar(500) default '' null comment '奖项描述',
status tinyint default 1 null comment '奖项状态0-禁用 1-启用',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间'
)
comment '抽奖奖项表';
create table lottery_card
(
card_id bigint auto_increment comment '卡片id'
primary key,
card_no varchar(32) null comment '卡片编号(唯一)',
batch_no varchar(32) null comment '批次号',
award_id bigint null comment '关联的奖项id',
status tinyint default 0 null comment '卡片状态0-未领取 1-已领取未使用 2-已使用 3-已过期',
user_id bigint null comment '领取用户id未领取时为空',
receive_time datetime null comment '领取时间',
expire_time datetime null comment '过期时间',
use_time datetime null comment '使用时间(兑换)',
exchange_id int null comment '兑换id(当卡片被用来兑换奖品时填入)',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
card_name varchar(32) null comment '卡片名称'
)
comment '抽奖卡片实例表';
create index idx_award_id
on lottery_card (award_id);
create index idx_batch_no
on lottery_card (batch_no);
create index idx_exchange_id
on lottery_card (exchange_id);
create index idx_expire_time
on lottery_card (expire_time);
create index idx_status
on lottery_card (status);
create index idx_user_id
on lottery_card (user_id);
create table lottery_exchange_record
(
exchange_id bigint auto_increment comment '兑换id'
primary key,
user_id bigint null comment '用户id',
activity_id bigint null comment '抽奖活动Id',
award_id bigint null comment '奖品id',
award_name varchar(100) null comment '奖品名称',
exchange_time datetime null comment '兑换时间',
card_num int null comment '卡片消耗数量',
assert_type int null comment '兑换的资产类型',
change_money decimal(10, 2) default 0.00 null comment '兑换的资产数量',
description varchar(500) null comment '描述',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间'
)
comment '兑换记录表' collate = utf8mb4_unicode_ci;
create index idx_activity_id
on lottery_exchange_record (activity_id);
create index idx_award_id
on lottery_exchange_record (award_id);
create index idx_user_id
on lottery_exchange_record (user_id);
create table lottery_points_record
(
id bigint auto_increment comment '记录id'
primary key,
user_id bigint null comment '用户id',
points int null comment '积分变动数量(正数为增加,负数为减少)',
point_type int null comment '积分类型1-消费配送2-兑换消耗3-活动奖励4-其他)',
record_id bigint null comment '抽奖记录id',
description varchar(255) null comment '积分变动描述',
create_time datetime null comment '创建时间',
update_time datetime null comment '更新时间',
current_points int null comment '当前剩余积分',
points_before int null comment '变动前积分',
points_after int null comment '变动后积分'
)
comment '积分记录表' collate = utf8mb4_unicode_ci;
create index idx_record_id
on lottery_points_record (record_id);
create index idx_user_id
on lottery_points_record (user_id);
create table lottery_points_rule
(
rule_id int auto_increment comment '规则id'
primary key,
rule_name varchar(100) null comment '规则名称',
points_type int null comment '积分类型1-抽奖获得2-兑换消耗3-活动奖励)',
points_value int null comment '积分值',
description text null comment '规则描述',
is_active tinyint default 1 null comment '是否启用1-启用0-禁用)',
create_time datetime null comment '创建时间',
update_time datetime null comment '更新时间',
start_time datetime null comment '开始时间',
end_time datetime null comment '结束时间'
)
comment '积分规则表' collate = utf8mb4_unicode_ci;
create table lottery_probability_segment
(
segment_id bigint auto_increment comment '区间配置ID'
primary key,
activity_id bigint not null comment '活动ID',
segment_size int default 25000 not null comment '每个区间的大小',
award_level int not null comment '奖项等级1=省,2=地级市,3=县级市,4=自治县,5=县,6=阳光普照)',
quota_per_segment int not null comment '每个区间内该等级奖项的配额',
description varchar(255) null comment '描述',
create_time datetime default CURRENT_TIMESTAMP null comment '创建时间',
update_time datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间'
)
comment '概率区间配置表(防止奖项扎堆)' charset = utf8mb4;
create index idx_activity
on lottery_probability_segment (activity_id);
create index idx_activity_level
on lottery_probability_segment (activity_id, award_level);
create table lottery_record
(
record_id bigint auto_increment comment '记录id'
primary key,
activity_id bigint null comment '活动ID',
user_id bigint null comment '用户id',
award_id bigint null comment '奖项id',
batch_no varchar(64) null comment '批次号(同一次抽奖的多个结果)',
draw_time datetime null comment '抽奖时间',
is_win tinyint null comment '是否中奖1-中奖0-未中奖)',
points_cost int default 0 null comment '本次消耗积分',
points_gained int default 0 null comment '获得积分',
create_time datetime null comment '创建时间',
update_time datetime null comment '更新时间'
)
comment '抽奖记录表' collate = utf8mb4_unicode_ci;
create index idx_activity_user
on lottery_record (activity_id, user_id);
create index idx_award_id
on lottery_record (award_id);
create index idx_batch_no
on lottery_record (batch_no);
create index idx_user_id
on lottery_record (user_id);