HaniBlindBox/server/HoneyBox/scripts/create_user_poster_cache.sql
2026-02-07 18:19:22 +08:00

36 lines
1.5 KiB
Transact-SQL

-- 创建用户海报缓存表
-- 用于存储用户生成的推广海报,避免重复生成
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[user_poster_cache]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[user_poster_cache] (
[id] INT IDENTITY(1,1) NOT NULL,
[user_id] INT NOT NULL,
[app_id] NVARCHAR(100) NULL,
[template_hash] NVARCHAR(64) NOT NULL,
[cos_url] NVARCHAR(500) NOT NULL,
[file_size] BIGINT NOT NULL DEFAULT 0,
[mime_type] NVARCHAR(50) NOT NULL DEFAULT 'image/png',
[status] INT NOT NULL DEFAULT 1,
[expires_at] DATETIME2 NOT NULL,
[platform] NVARCHAR(50) NOT NULL DEFAULT 'MP-WEIXIN',
[created_at] DATETIME2 NOT NULL DEFAULT GETDATE(),
[updated_at] DATETIME2 NOT NULL DEFAULT GETDATE(),
CONSTRAINT [pk_user_poster_cache] PRIMARY KEY CLUSTERED ([id] ASC)
);
-- 创建索引
CREATE INDEX [ix_user_poster_cache_user_id] ON [dbo].[user_poster_cache] ([user_id]);
CREATE INDEX [ix_user_poster_cache_template_hash] ON [dbo].[user_poster_cache] ([template_hash]);
CREATE INDEX [ix_user_poster_cache_platform] ON [dbo].[user_poster_cache] ([platform]);
CREATE INDEX [ix_user_poster_cache_status] ON [dbo].[user_poster_cache] ([status]);
CREATE INDEX [ix_user_poster_cache_expires_at] ON [dbo].[user_poster_cache] ([expires_at]);
PRINT '表 user_poster_cache 创建成功';
END
ELSE
BEGIN
PRINT '表 user_poster_cache 已存在';
END
GO