Files
doodle-store/apps/server/prisma/sql/007-add-publication-and-resource-downloads.sql
2026-10-15 10:09:34 +08:00

23 lines
1.6 KiB
PL/PgSQL

-- 已有库完成 004/005/006 后执行;最新空库基线包含此结构,不执行本文件。
-- 不用创建时间/升级时间冒充首次发布,不将功能历史计数分摊到资源。
BEGIN;
SET LOCAL TIME ZONE 'UTC';
SET LOCAL lock_timeout = '5s';
SET LOCAL search_path = public, pg_catalog;
ALTER TABLE public.worksheets
ADD COLUMN first_published_at timestamptz(3);
ALTER TABLE public.worksheet_resources
ADD COLUMN first_published_at timestamptz(3),
ADD COLUMN downloads bigint NOT NULL DEFAULT 0,
ADD CONSTRAINT worksheet_resources_downloads_check CHECK (downloads >= 0);
COMMENT ON COLUMN public.worksheets.first_published_at IS '首次公开发布时间;新功能由发布事务写入,重发/新增资源不重置;旧时间未知保持 NULL';
COMMENT ON COLUMN public.worksheets.is_new IS '旧版新品兼容标记;新功能新品由首次发布时间及时间窗口派生,不作为新业务权威值';
COMMENT ON COLUMN public.worksheets.is_hot IS '功能级人工运营推荐标记,不是下载排行榜计算结果,不自动传递给资源';
COMMENT ON COLUMN public.worksheets.downloads IS '功能累计成功保存次数;保留旧累计值,资源下载也计入,不等于资源计数总和';
COMMENT ON COLUMN public.worksheet_resources.first_published_at IS '内容首次公开发布时间;用于资源新品判断,草稿/重发不重置,未知旧时间保持 NULL';
COMMENT ON COLUMN public.worksheet_resources.downloads IS '内容累计成功保存次数;仅有可信资源归属的新事件递增,不分摊功能旧计数,不因个人日志删除回减';
COMMIT;