Files
2026-02-22 12:12:02 +08:00

567 lines
27 KiB
SQL

-- ----------------------------
-- 商品表
-- ----------------------------
DROP TABLE IF EXISTS `mall_product`;
CREATE TABLE `mall_product` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '商品ID',
`name` varchar(128) NOT NULL COMMENT '商品名称',
`category_id` bigint DEFAULT NULL COMMENT '分类ID',
`brand_id` bigint DEFAULT NULL COMMENT '品牌ID',
`cover_url` varchar(512) DEFAULT NULL COMMENT '封面图片',
`images` text COMMENT '商品图片(JSON数组)',
`description` text COMMENT '商品描述',
`detail` text COMMENT '商品详情',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0上架 1下架)',
`sort` int DEFAULT '0' COMMENT '排序',
`sales_count` int DEFAULT '0' COMMENT '销量',
`view_count` int DEFAULT '0' COMMENT '浏览量',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_category_id` (`category_id`),
KEY `idx_brand_id` (`brand_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='商品表';
-- ----------------------------
-- SKU表
-- ----------------------------
DROP TABLE IF EXISTS `mall_sku`;
CREATE TABLE `mall_sku` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'SKU ID',
`product_id` bigint NOT NULL COMMENT '商品ID',
`sku_code` varchar(64) NOT NULL COMMENT 'SKU编码',
`name` varchar(128) DEFAULT NULL COMMENT 'SKU名称',
`price` int NOT NULL COMMENT '价格(分)',
`original_price` int DEFAULT NULL COMMENT '原价(分)',
`stock` int NOT NULL DEFAULT '0' COMMENT '库存',
`image` varchar(512) DEFAULT NULL COMMENT 'SKU图片',
`specs` text COMMENT '规格属性(JSON)',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_sku_code` (`sku_code`),
KEY `idx_product_id` (`product_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='SKU表';
-- ----------------------------
-- 购物车表
-- ----------------------------
DROP TABLE IF EXISTS `mall_cart`;
CREATE TABLE `mall_cart` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '购物车ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`sku_id` bigint NOT NULL COMMENT 'SKU ID',
`quantity` int NOT NULL DEFAULT '1' COMMENT '数量',
`selected` tinyint NOT NULL DEFAULT '1' COMMENT '是否选中(0否 1是)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_sku` (`user_id`, `sku_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB COMMENT='购物车表';
-- ----------------------------
-- 订单表
-- ----------------------------
DROP TABLE IF EXISTS `mall_order`;
CREATE TABLE `mall_order` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`user_id` bigint NOT NULL COMMENT '用户ID',
`total_amount` int NOT NULL COMMENT '订单总金额(分)',
`pay_amount` int NOT NULL COMMENT '实付金额(分)',
`pay_status` tinyint NOT NULL DEFAULT '0' COMMENT '支付状态(0未支付 1已支付 2已退款)',
`pay_order_no` varchar(32) DEFAULT NULL COMMENT '支付单号',
`pay_channel_code` varchar(32) DEFAULT NULL COMMENT '支付渠道编码',
`pay_time` datetime DEFAULT NULL COMMENT '支付时间',
`order_status` tinyint NOT NULL DEFAULT '0' COMMENT '订单状态(0待付款 1待发货 2待收货 3已完成 4已取消)',
`delivery_status` tinyint NOT NULL DEFAULT '0' COMMENT '发货状态(0未发货 1已发货 2已收货)',
`receiver_name` varchar(64) NOT NULL COMMENT '收货人姓名',
`receiver_phone` varchar(32) NOT NULL COMMENT '收货人电话',
`receiver_address` varchar(512) NOT NULL COMMENT '收货地址',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`cancel_reason` varchar(256) DEFAULT NULL COMMENT '取消原因',
`cancel_time` datetime DEFAULT NULL COMMENT '取消时间',
`delivery_time` datetime DEFAULT NULL COMMENT '发货时间',
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
`promotion_type` tinyint DEFAULT NULL COMMENT '活动类型(0普通订单 1拼团 2秒杀 3砍价)',
`promotion_id` bigint DEFAULT NULL COMMENT '营销活动ID',
`seckill_id` bigint DEFAULT NULL COMMENT '秒杀活动ID(仅秒杀订单)',
`group_buy_id` bigint DEFAULT NULL COMMENT '拼团活动ID(仅拼团订单)',
`bargain_id` bigint DEFAULT NULL COMMENT '砍价活动ID(仅砍价订单)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_pay_order_no` (`pay_order_no`),
KEY `idx_order_status` (`order_status`),
KEY `idx_pay_status` (`pay_status`),
KEY `idx_promotion_type` (`promotion_type`),
KEY `idx_promotion_id` (`promotion_id`),
KEY `idx_seckill_id` (`seckill_id`)
) ENGINE=InnoDB COMMENT='订单表';
-- ----------------------------
-- 订单明细表
-- ----------------------------
DROP TABLE IF EXISTS `mall_order_item`;
CREATE TABLE `mall_order_item` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单明细ID',
`order_id` bigint NOT NULL COMMENT '订单ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`product_id` bigint NOT NULL COMMENT '商品ID',
`sku_id` bigint NOT NULL COMMENT 'SKU ID',
`product_name` varchar(128) NOT NULL COMMENT '商品名称',
`sku_name` varchar(128) DEFAULT NULL COMMENT 'SKU名称',
`sku_image` varchar(512) DEFAULT NULL COMMENT 'SKU图片',
`price` int NOT NULL COMMENT '单价(分)',
`quantity` int NOT NULL COMMENT '数量',
`total_amount` int NOT NULL COMMENT '小计金额(分)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_order_no` (`order_no`),
KEY `idx_product_id` (`product_id`),
KEY `idx_sku_id` (`sku_id`)
) ENGINE=InnoDB COMMENT='订单明细表';
-- ----------------------------
-- 商品分类表
-- ----------------------------
DROP TABLE IF EXISTS `mall_category`;
CREATE TABLE `mall_category` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类ID',
`name` varchar(64) NOT NULL COMMENT '分类名称',
`parent_id` bigint DEFAULT '0' COMMENT '父分类ID(0表示顶级)',
`level` tinyint DEFAULT '1' COMMENT '分类级别(1一级 2二级 3三级)',
`icon` varchar(512) DEFAULT NULL COMMENT '分类图标',
`sort` int DEFAULT '0' COMMENT '排序',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='商品分类表';
-- ----------------------------
-- 品牌表
-- ----------------------------
DROP TABLE IF EXISTS `mall_brand`;
CREATE TABLE `mall_brand` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '品牌ID',
`name` varchar(64) NOT NULL COMMENT '品牌名称',
`logo` varchar(512) DEFAULT NULL COMMENT '品牌Logo',
`description` varchar(512) DEFAULT NULL COMMENT '品牌描述',
`sort` int DEFAULT '0' COMMENT '排序',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='品牌表';
-- ----------------------------
-- 优惠券表
-- ----------------------------
DROP TABLE IF EXISTS `mall_coupon`;
CREATE TABLE `mall_coupon` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '优惠券ID',
`name` varchar(128) NOT NULL COMMENT '优惠券名称',
`type` tinyint NOT NULL COMMENT '优惠券类型(0满减 1折扣 2现金)',
`discount_amount` int DEFAULT NULL COMMENT '优惠金额(分)',
`discount_rate` decimal(5,2) DEFAULT NULL COMMENT '折扣率(%)',
`min_amount` int NOT NULL DEFAULT '0' COMMENT '使用门槛(分)',
`total_count` int DEFAULT NULL COMMENT '发放总数(null表示不限)',
`used_count` int DEFAULT '0' COMMENT '已使用数量',
`per_limit` int DEFAULT '1' COMMENT '每人限领数量',
`valid_start_time` datetime NOT NULL COMMENT '有效开始时间',
`valid_end_time` datetime NOT NULL COMMENT '有效结束时间',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_valid_time` (`valid_start_time`, `valid_end_time`)
) ENGINE=InnoDB COMMENT='优惠券表';
-- ----------------------------
-- 用户优惠券表
-- ----------------------------
DROP TABLE IF EXISTS `mall_coupon_user`;
CREATE TABLE `mall_coupon_user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`coupon_id` bigint NOT NULL COMMENT '优惠券ID',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0未使用 1已使用 2已过期)',
`used_time` datetime DEFAULT NULL COMMENT '使用时间',
`order_id` bigint DEFAULT NULL COMMENT '使用的订单ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '领取时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_coupon_id` (`coupon_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='用户优惠券表';
-- ----------------------------
-- 营销活动表
-- ----------------------------
DROP TABLE IF EXISTS `mall_promotion`;
CREATE TABLE `mall_promotion` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '活动ID',
`name` varchar(128) NOT NULL COMMENT '活动名称',
`type` tinyint NOT NULL COMMENT '活动类型(0普通活动 1拼团 2秒杀 3砍价)',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`rules` text COMMENT '活动规则(JSON)',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_type` (`type`),
KEY `idx_status` (`status`),
KEY `idx_time` (`start_time`, `end_time`)
) ENGINE=InnoDB COMMENT='营销活动表';
-- ----------------------------
-- 拼团表
-- ----------------------------
DROP TABLE IF EXISTS `mall_group_buy`;
CREATE TABLE `mall_group_buy` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '拼团ID',
`promotion_id` bigint NOT NULL COMMENT '活动ID',
`sku_id` bigint NOT NULL COMMENT 'SKU ID',
`group_price` int NOT NULL COMMENT '拼团价(分)',
`group_size` int NOT NULL COMMENT '成团人数',
`duration_hours` int DEFAULT '24' COMMENT '拼团有效期(小时)',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_promotion_id` (`promotion_id`),
KEY `idx_sku_id` (`sku_id`)
) ENGINE=InnoDB COMMENT='拼团表';
-- ----------------------------
-- 拼团订单表
-- ----------------------------
DROP TABLE IF EXISTS `mall_group_buy_order`;
CREATE TABLE `mall_group_buy_order` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`group_buy_id` bigint NOT NULL COMMENT '拼团ID',
`group_no` varchar(32) NOT NULL COMMENT '拼团编号',
`order_id` bigint NOT NULL COMMENT '订单ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0拼团中 1已成团 2已失败)',
`success_time` datetime DEFAULT NULL COMMENT '成团时间',
`expire_time` datetime NOT NULL COMMENT '过期时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_group_buy_id` (`group_buy_id`),
KEY `idx_group_no` (`group_no`),
KEY `idx_order_id` (`order_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='拼团订单表';
-- ----------------------------
-- 秒杀表
-- ----------------------------
DROP TABLE IF EXISTS `mall_seckill`;
CREATE TABLE `mall_seckill` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '秒杀ID',
`promotion_id` bigint NOT NULL COMMENT '活动ID',
`sku_id` bigint NOT NULL COMMENT 'SKU ID',
`seckill_price` int NOT NULL COMMENT '秒杀价(分)',
`seckill_stock` int NOT NULL COMMENT '秒杀库存',
`start_time` datetime NOT NULL COMMENT '开始时间',
`end_time` datetime NOT NULL COMMENT '结束时间',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_promotion_id` (`promotion_id`),
KEY `idx_sku_id` (`sku_id`),
KEY `idx_time` (`start_time`, `end_time`)
) ENGINE=InnoDB COMMENT='秒杀表';
-- ----------------------------
-- 砍价活动表
-- ----------------------------
DROP TABLE IF EXISTS `mall_bargain`;
CREATE TABLE `mall_bargain` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '砍价ID',
`promotion_id` bigint NOT NULL COMMENT '活动ID',
`sku_id` bigint NOT NULL COMMENT 'SKU ID',
`bargain_price` int NOT NULL COMMENT '砍后价(分)',
`original_price` int NOT NULL COMMENT '原价(分)',
`bargain_stock` int NOT NULL COMMENT '砍价库存',
`min_price` int NOT NULL COMMENT '最低价(分)',
`help_count` int NOT NULL DEFAULT '0' COMMENT '需要助力人数',
`duration_hours` int DEFAULT '24' COMMENT '砍价有效期(小时)',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_promotion_id` (`promotion_id`),
KEY `idx_sku_id` (`sku_id`)
) ENGINE=InnoDB COMMENT='砍价活动表';
-- ----------------------------
-- 砍价记录表
-- ----------------------------
DROP TABLE IF EXISTS `mall_bargain_record`;
CREATE TABLE `mall_bargain_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`bargain_id` bigint NOT NULL COMMENT '砍价活动ID',
`bargain_no` varchar(32) NOT NULL COMMENT '砍价编号',
`user_id` bigint NOT NULL COMMENT '发起用户ID',
`sku_id` bigint NOT NULL COMMENT 'SKU ID',
`current_price` int NOT NULL COMMENT '当前价格(分)',
`bargain_price` int NOT NULL COMMENT '已砍金额(分)',
`help_count` int NOT NULL DEFAULT '0' COMMENT '已助力人数',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0进行中 1已成功 2已失败 3已下单)',
`order_id` bigint DEFAULT NULL COMMENT '订单ID',
`expire_time` datetime NOT NULL COMMENT '过期时间',
`success_time` datetime DEFAULT NULL COMMENT '成功时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_bargain_id` (`bargain_id`),
KEY `idx_bargain_no` (`bargain_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='砍价记录表';
-- ----------------------------
-- 砍价助力记录表
-- ----------------------------
DROP TABLE IF EXISTS `mall_bargain_help`;
CREATE TABLE `mall_bargain_help` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`bargain_record_id` bigint NOT NULL COMMENT '砍价记录ID',
`bargain_no` varchar(32) NOT NULL COMMENT '砍价编号',
`user_id` bigint NOT NULL COMMENT '助力用户ID',
`help_price` int NOT NULL COMMENT '助力金额(分)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '助力时间',
PRIMARY KEY (`id`),
KEY `idx_bargain_record_id` (`bargain_record_id`),
KEY `idx_bargain_no` (`bargain_no`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB COMMENT='砍价助力记录表';
-- ----------------------------
-- 订单评价表
-- ----------------------------
DROP TABLE IF EXISTS `mall_order_evaluate`;
CREATE TABLE `mall_order_evaluate` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '评价ID',
`order_id` bigint NOT NULL COMMENT '订单ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`order_item_id` bigint NOT NULL COMMENT '订单明细ID',
`product_id` bigint NOT NULL COMMENT '商品ID',
`sku_id` bigint NOT NULL COMMENT 'SKU ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`score` tinyint NOT NULL COMMENT '评分(1-5)',
`content` varchar(512) DEFAULT NULL COMMENT '评价内容',
`images` text COMMENT '评价图片(JSON数组)',
`reply_content` varchar(512) DEFAULT NULL COMMENT '回复内容',
`reply_time` datetime DEFAULT NULL COMMENT '回复时间',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0待审核 1已通过 2已驳回)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_order_no` (`order_no`),
KEY `idx_order_item_id` (`order_item_id`),
KEY `idx_product_id` (`product_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB COMMENT='订单评价表';
-- ----------------------------
-- 售后申请表
-- ----------------------------
DROP TABLE IF EXISTS `mall_after_sale`;
CREATE TABLE `mall_after_sale` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '售后ID',
`after_sale_no` varchar(32) NOT NULL COMMENT '售后单号',
`order_id` bigint NOT NULL COMMENT '订单ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`order_item_id` bigint NOT NULL COMMENT '订单明细ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`type` tinyint NOT NULL COMMENT '售后类型(0退款 1退货 2换货)',
`reason` varchar(256) NOT NULL COMMENT '申请原因',
`description` varchar(512) DEFAULT NULL COMMENT '问题描述',
`images` text COMMENT '凭证图片(JSON数组)',
`refund_amount` int DEFAULT NULL COMMENT '退款金额(分)',
`quantity` int NOT NULL DEFAULT '1' COMMENT '数量',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0待审核 1已同意 2已拒绝 3待退货 4待收货 5已完成 6已取消)',
`refuse_reason` varchar(256) DEFAULT NULL COMMENT '拒绝原因',
`refund_order_no` varchar(32) DEFAULT NULL COMMENT '退款单号',
`logistics_company` varchar(64) DEFAULT NULL COMMENT '物流公司',
`logistics_no` varchar(64) DEFAULT NULL COMMENT '物流单号',
`apply_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
`audit_time` datetime DEFAULT NULL COMMENT '审核时间',
`return_time` datetime DEFAULT NULL COMMENT '退货时间',
`receive_time` datetime DEFAULT NULL COMMENT '收货时间',
`refund_time` datetime DEFAULT NULL COMMENT '退款时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_after_sale_no` (`after_sale_no`),
KEY `idx_order_id` (`order_id`),
KEY `idx_order_no` (`order_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='售后申请表';
-- ----------------------------
-- 订单优惠券使用记录表
-- ----------------------------
DROP TABLE IF EXISTS `mall_order_coupon`;
CREATE TABLE `mall_order_coupon` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`order_id` bigint NOT NULL COMMENT '订单ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`coupon_id` bigint NOT NULL COMMENT '优惠券ID',
`coupon_user_id` bigint NOT NULL COMMENT '用户优惠券ID',
`discount_amount` int NOT NULL COMMENT '优惠金额(分)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '使用时间',
PRIMARY KEY (`id`),
KEY `idx_order_id` (`order_id`),
KEY `idx_order_no` (`order_no`),
KEY `idx_coupon_id` (`coupon_id`),
KEY `idx_coupon_user_id` (`coupon_user_id`)
) ENGINE=InnoDB COMMENT='订单优惠券使用记录表';
-- ----------------------------
-- 收货地址表
-- ----------------------------
DROP TABLE IF EXISTS `mall_address`;
CREATE TABLE `mall_address` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '地址ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`receiver_name` varchar(64) NOT NULL COMMENT '收货人姓名',
`receiver_phone` varchar(32) NOT NULL COMMENT '收货人电话',
`province` varchar(64) DEFAULT NULL COMMENT '省份',
`city` varchar(64) DEFAULT NULL COMMENT '城市',
`district` varchar(64) DEFAULT NULL COMMENT '区/县',
`address` varchar(512) NOT NULL COMMENT '详细地址',
`is_default` tinyint NOT NULL DEFAULT '0' COMMENT '是否默认地址(0否 1是)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_is_default` (`is_default`)
) ENGINE=InnoDB COMMENT='收货地址表';
-- ----------------------------
-- 属性模板表
-- ----------------------------
DROP TABLE IF EXISTS `mall_attribute_template`;
CREATE TABLE `mall_attribute_template` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '模板ID',
`name` varchar(64) NOT NULL COMMENT '模板名称',
`category_id` bigint DEFAULT NULL COMMENT '分类ID(可选,绑定到分类)',
`sort` int DEFAULT '0' COMMENT '排序',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_category_id` (`category_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='属性模板表';
-- ----------------------------
-- 属性表
-- ----------------------------
DROP TABLE IF EXISTS `mall_attribute`;
CREATE TABLE `mall_attribute` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '属性ID',
`template_id` bigint DEFAULT NULL COMMENT '模板ID(可选,绑定到模板)',
`name` varchar(64) NOT NULL COMMENT '属性名称',
`type` tinyint NOT NULL DEFAULT '0' COMMENT '属性类型(0文本 1数字 2日期 3枚举)',
`required` tinyint NOT NULL DEFAULT '0' COMMENT '是否必填(0否 1是)',
`sort` int DEFAULT '0' COMMENT '排序',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_template_id` (`template_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='属性表';
-- ----------------------------
-- 属性值表
-- ----------------------------
DROP TABLE IF EXISTS `mall_attribute_value`;
CREATE TABLE `mall_attribute_value` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '属性值ID',
`attribute_id` bigint NOT NULL COMMENT '属性ID',
`value` varchar(128) NOT NULL COMMENT '属性值',
`sort` int DEFAULT '0' COMMENT '排序',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0启用 1禁用)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_attribute_id` (`attribute_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='属性值表';
-- ----------------------------
-- 商品属性关联表
-- ----------------------------
DROP TABLE IF EXISTS `mall_product_attribute`;
CREATE TABLE `mall_product_attribute` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
`product_id` bigint NOT NULL COMMENT '商品ID',
`attribute_id` bigint NOT NULL COMMENT '属性ID',
`attribute_value_id` bigint DEFAULT NULL COMMENT '属性值ID(当属性类型为枚举时使用)',
`value` varchar(512) DEFAULT NULL COMMENT '属性值(当属性类型为文本/数字/日期时使用,或自定义值)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_product_id` (`product_id`),
KEY `idx_attribute_id` (`attribute_id`),
KEY `idx_attribute_value_id` (`attribute_value_id`)
) ENGINE=InnoDB COMMENT='商品属性关联表';