| 123456789101112131415161718192021222324252627282930313233 |
- -- ============================================
- -- 用户优惠券表 (agent.dbo.user_coupons)
- -- SQL Server DDL
- -- ============================================
- IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='user_coupons' AND xtype='U')
- BEGIN
- CREATE TABLE agent.dbo.user_coupons (
- id INT IDENTITY(1,1) PRIMARY KEY,
- user_id INT NOT NULL, -- 用户ID
- coupon_name VARCHAR(50) NOT NULL, -- 优惠券名称 (e.g. new_user_bonus)
- coupon_type TINYINT NOT NULL DEFAULT 1, -- 类型: 1=固定金额, 2=充值百分比
- coupon_value DECIMAL(10,2) NOT NULL DEFAULT 0, -- 优惠值 (元 or %)
- min_recharge DECIMAL(10,2) NOT NULL DEFAULT 0, -- 最低充值门槛(元)
- max_bonus DECIMAL(10,2) NOT NULL DEFAULT 0, -- 最大赠送上限(元), 百分比券使用
- bonus_coins INT NOT NULL DEFAULT 0, -- 实际赠送金币(分)
- order_sn VARCHAR(64) NOT NULL DEFAULT '', -- 关联订单号
- status TINYINT NOT NULL DEFAULT 0, -- 0=未使用, 1=已使用, 2=已过期
- issued_at DATETIME NULL, -- 发放时间
- used_at DATETIME NULL, -- 使用时间
- expire_at DATETIME NULL, -- 过期时间
- );
- -- 索引: 用户+状态查询(获取可用优惠券列表)
- CREATE INDEX idx_user_coupons_user_status ON agent.dbo.user_coupons (user_id, status, expire_at);
- -- 索引: 优惠券名称防重
- CREATE INDEX idx_user_coupons_user_name ON agent.dbo.user_coupons (user_id, coupon_name, status);
- -- 索引: 按订单号查找关联优惠券
- CREATE INDEX idx_user_coupons_order_sn ON agent.dbo.user_coupons (order_sn);
- END
- GO
|