请收藏:PG所有版本发布历史

本文概述了PostgreSQL全球开发组的版本发布规律,每年一个主要版本加定期的错误修复,同时提及了与数据库工程师相关的话题如考试和培训,以及PGCCC的提及.

PostgreSQL全球开发组每年大约会发布一个包含新功能的新主要版本。每个主要版本会收到至少每三个月发布一次的错误修复。以下是PG所有版本发布历史汇总图:
在这里插入图片描述

#PG数据库工程师的摇篮#PostgreSQL考试#PostgreSQL培训#PGCCC

### 1. 平台用户表(t_stack_user) **作用**:扩展系统用户的社区属性(如个人简介、关注数等),关联系统用户表(`t_sys_user`) ```sql CREATE TABLE "public"."t_stack_user" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "sys_user_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 关联系统用户表ID "bio" varchar(500) COLLATE "pg_catalog"."default", -- 个人简介(技术领域、擅长方向等) "personal_url" varchar(255) COLLATE "pg_catalog"."default", -- 个人主页/博客地址 "follow_count" int4 DEFAULT 0, -- 关注的用户数 "follower_count" int4 DEFAULT 0, -- 粉丝数 "article_count" int4 DEFAULT 0, -- 发布的文章数 "is_verified" bool DEFAULT false, -- 是否认证开发者(如"前端专家") "verified_info" varchar(100) COLLATE "pg_catalog"."default", -- 认证信息(如"Java高级工程师") CONSTRAINT "pk_t_stack_user" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_user_sys" FOREIGN KEY ("sys_user_id") REFERENCES "public"."t_sys_user" ("id") ON DELETE RESTRICT ); COMMENT ON TABLE "public"."t_stack_user" IS '平台用户表(系统用户的社区属性扩展)'; COMMENT ON COLUMN "public"."t_stack_user"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_user"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_user"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_user"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_user"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_user"."is_delete" IS '是否删除(true-删除,false-正常)'; COMMENT ON COLUMN "public"."t_stack_user"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_user"."tenant_id" IS '多租户标识(与系统用户一致)'; COMMENT ON COLUMN "public"."t_stack_user"."sys_user_id" IS '关联系统用户表的唯一ID(外键)'; COMMENT ON COLUMN "public"."t_stack_user"."bio" IS '个人简介(技术社区展示用)'; COMMENT ON COLUMN "public"."t_stack_user"."personal_url" IS '个人博客/外部主页链接'; COMMENT ON COLUMN "public"."t_stack_user"."follow_count" IS '关注的用户总数'; COMMENT ON COLUMN "public"."t_stack_user"."follower_count" IS '粉丝总数'; COMMENT ON COLUMN "public"."t_stack_user"."article_count" IS '发布的技术文章总数'; COMMENT ON COLUMN "public"."t_stack_user"."is_verified" IS '是否为认证开发者'; COMMENT ON COLUMN "public"."t_stack_user"."verified_info" IS '认证信息(如"云计算专家")'; -- 索引:通过系统用户ID快速查询平台用户信息 CREATE UNIQUE INDEX "uk_t_stack_user_sys_id" ON "public"."t_stack_user" USING btree ("sys_user_id") WHERE "is_delete" = false; ``` ### 2. 技术文章表(t_stack_article) **作用**:存储用户发布的技术文章核心内容,关联平台用户(作者) ```sql CREATE TABLE "public"."t_stack_article" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "title" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, -- 文章标题 "content" text COLLATE "pg_catalog"."default" NOT NULL, -- 文章内容(富文本) "summary" varchar(500) COLLATE "pg_catalog"."default", -- 摘要(列表页展示) "cover_img" varchar(512) COLLATE "pg_catalog"."default", -- 封面图URL "author_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 作者(平台用户ID) "column_id" varchar(32) COLLATE "pg_catalog"."default", -- 所属专栏(可为空) "status" varchar(20) COLLATE "pg_catalog"."default" NOT NULL, -- 状态:DRAFT(草稿)/PUBLISHED(发布)/OFFLINE(下架) "view_count" int4 DEFAULT 0, -- 阅读量 "like_count" int4 DEFAULT 0, -- 点赞数 "comment_count" int4 DEFAULT 0, -- 评论数 "collect_count" int4 DEFAULT 0, -- 收藏数 "publish_time" timestamp(6), -- 发布时间(草稿转发布时更新) CONSTRAINT "pk_t_stack_article" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_article_author" FOREIGN KEY ("author_id") REFERENCES "public"."t_stack_user" ("id") ON DELETE RESTRICT ); COMMENT ON TABLE "public"."t_stack_article" IS '技术文章表(核心内容载体)'; COMMENT ON COLUMN "public"."t_stack_article"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_article"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_article"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_article"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_article"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_article"."is_delete" IS '是否删除(true-删除,false-正常)'; COMMENT ON COLUMN "public"."t_stack_article"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_article"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_article"."title" IS '文章标题'; COMMENT ON COLUMN "public"."t_stack_article"."content" IS '文章内容(支持Markdown/HTML)'; COMMENT ON COLUMN "public"."t_stack_article"."summary" IS '文章摘要(500字以内)'; COMMENT ON COLUMN "public"."t_stack_article"."cover_img" IS '封面图片URL(可选)'; COMMENT ON COLUMN "public"."t_stack_article"."author_id" IS '作者ID(关联平台用户表)'; COMMENT ON COLUMN "public"."t_stack_article"."column_id" IS '所属专栏ID(关联专栏表,可为空)'; COMMENT ON COLUMN "public"."t_stack_article"."status" IS '文章状态'; COMMENT ON COLUMN "public"."t_stack_article"."view_count" IS '累计阅读次数'; COMMENT ON COLUMN "public"."t_stack_article"."like_count" IS '累计点赞次数'; COMMENT ON COLUMN "public"."t_stack_article"."comment_count" IS '累计评论次数'; COMMENT ON COLUMN "public"."t_stack_article"."collect_count" IS '累计收藏次数'; COMMENT ON COLUMN "public"."t_stack_article"."publish_time" IS '首次发布时间'; -- 索引:优化作者文章查询、状态筛选 CREATE INDEX "idx_t_stack_article_author" ON "public"."t_stack_article" USING btree ("author_id", "is_delete"); CREATE INDEX "idx_t_stack_article_status" ON "public"."t_stack_article" USING btree ("status", "is_delete", "publish_time"); ``` ### 3. 技术专栏表(t_stack_column) **作用**:聚合同类文章的专栏(如“Java进阶系列”),关联专栏创建者 ```sql CREATE TABLE "public"."t_stack_column" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL, -- 专栏名称 "description" varchar(500) COLLATE "pg_catalog"."default", -- 专栏描述 "cover_img" varchar(512) COLLATE "pg_catalog"."default", -- 专栏封面图 "creator_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 创建者(平台用户ID) "article_count" int4 DEFAULT 0, -- 专栏内文章数量 "status" varchar(20) COLLATE "pg_catalog"."default" NOT NULL, -- 状态:ENABLED(启用)/DISABLED(禁用) CONSTRAINT "pk_t_stack_column" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_column_creator" FOREIGN KEY ("creator_id") REFERENCES "public"."t_stack_user" ("id") ON DELETE RESTRICT ); COMMENT ON TABLE "public"."t_stack_column" IS '技术专栏表(文章聚合容器)'; COMMENT ON COLUMN "public"."t_stack_column"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_column"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_column"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_column"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_column"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_column"."is_delete" IS '是否删除(true-删除,false-正常)'; COMMENT ON COLUMN "public"."t_stack_column"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_column"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_column"."name" IS '专栏名称(如"SpringCloud实战")'; COMMENT ON COLUMN "public"."t_stack_column"."description" IS '专栏简介(说明专栏主题)'; COMMENT ON COLUMN "public"."t_stack_column"."cover_img" IS '专栏封面图片URL'; COMMENT ON COLUMN "public"."t_stack_column"."creator_id" IS '创建者ID(关联平台用户表)'; COMMENT ON COLUMN "public"."t_stack_column"."article_count" IS '专栏包含的文章总数'; COMMENT ON COLUMN "public"."t_stack_column"."status" IS '专栏状态'; -- 索引:同一用户的专栏名称唯一 CREATE UNIQUE INDEX "uk_t_stack_column_name" ON "public"."t_stack_column" USING btree ("name", "creator_id") WHERE "is_delete" = false; CREATE INDEX "idx_t_stack_column_creator" ON "public"."t_stack_column" USING btree ("creator_id", "is_delete"); ``` ### 4. 技术标签表(t_stack_tag) **作用**:文章分类标签(如“Java”“分布式”),支持内容检索 ```sql CREATE TABLE "public"."t_stack_tag" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL, -- 标签名称(如"Python") "description" varchar(200) COLLATE "pg_catalog"."default", -- 标签描述 "use_count" int4 DEFAULT 0, -- 被文章使用的次数 CONSTRAINT "pk_t_stack_tag" PRIMARY KEY ("id") ); COMMENT ON TABLE "public"."t_stack_tag" IS '技术标签表(内容分类标识)'; COMMENT ON COLUMN "public"."t_stack_tag"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_tag"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_tag"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_tag"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_tag"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_tag"."is_delete" IS '是否删除(true-删除,false-正常)'; COMMENT ON COLUMN "public"."t_stack_tag"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_tag"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_tag"."name" IS '标签名称(唯一)'; COMMENT ON COLUMN "public"."t_stack_tag"."description" IS '标签说明(如"Java编程语言相关内容")'; COMMENT ON COLUMN "public"."t_stack_tag"."use_count" IS '关联的文章总数'; -- 索引:标签名称唯一(同一租户内) CREATE UNIQUE INDEX "uk_t_stack_tag_name" ON "public"."t_stack_tag" USING btree ("name", "tenant_id") WHERE "is_delete" = false; ``` ### 5. 文章标签关联表(t_stack_article_tag) **作用**:关联文章与标签(多对多关系) ```sql CREATE TABLE "public"."t_stack_article_tag" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "article_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 文章ID "tag_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 标签ID CONSTRAINT "pk_t_stack_article_tag" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_article_tag_article" FOREIGN KEY ("article_id") REFERENCES "public"."t_stack_article" ("id") ON DELETE CASCADE, CONSTRAINT "fk_t_stack_article_tag_tag" FOREIGN KEY ("tag_id") REFERENCES "public"."t_stack_tag" ("id") ON DELETE RESTRICT ); COMMENT ON TABLE "public"."t_stack_article_tag" IS '文章标签关联表(多对多映射)'; COMMENT ON COLUMN "public"."t_stack_article_tag"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_article_tag"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_article_tag"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_article_tag"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_article_tag"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_article_tag"."is_delete" IS '是否删除(true-删除,false-正常)'; COMMENT ON COLUMN "public"."t_stack_article_tag"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_article_tag"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_article_tag"."article_id" IS '文章ID(关联文章表)'; COMMENT ON COLUMN "public"."t_stack_article_tag"."tag_id" IS '标签ID(关联标签表)'; -- 索引:同一文章不能重复关联同一标签 CREATE UNIQUE INDEX "uk_t_stack_article_tag_relation" ON "public"."t_stack_article_tag" USING btree ("article_id", "tag_id") WHERE "is_delete" = false; ``` ### 6. 文章评论表(t_stack_comment) **作用**:存储用户对文章的评论及回复(支持多级回复) ```sql CREATE TABLE "public"."t_stack_comment" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "article_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 所属文章ID "parent_id" varchar(32) COLLATE "pg_catalog"."default", -- 父评论ID(回复时关联,null为一级评论) "content" varchar(1000) COLLATE "pg_catalog"."default" NOT NULL, -- 评论内容 "commenter_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 评论人(平台用户ID) "like_count" int4 DEFAULT 0, -- 评论点赞数 CONSTRAINT "pk_t_stack_comment" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_comment_article" FOREIGN KEY ("article_id") REFERENCES "public"."t_stack_article" ("id") ON DELETE CASCADE, CONSTRAINT "fk_t_stack_comment_user" FOREIGN KEY ("commenter_id") REFERENCES "public"."t_stack_user" ("id") ON DELETE RESTRICT, CONSTRAINT "fk_t_stack_comment_parent" FOREIGN KEY ("parent_id") REFERENCES "public"."t_stack_comment" ("id") ON DELETE CASCADE ); COMMENT ON TABLE "public"."t_stack_comment" IS '文章评论表(支持多级回复)'; COMMENT ON COLUMN "public"."t_stack_comment"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_comment"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_comment"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_comment"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_comment"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_comment"."is_delete" IS '是否删除(true-删除,false-正常)'; COMMENT ON COLUMN "public"."t_stack_comment"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_comment"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_comment"."article_id" IS '所属文章ID(关联文章表)'; COMMENT ON COLUMN "public"."t_stack_comment"."parent_id" IS '父评论ID(自关联,null为一级评论)'; COMMENT ON COLUMN "public"."t_stack_comment"."content" IS '评论内容(1000字以内)'; COMMENT ON COLUMN "public"."t_stack_comment"."commenter_id" IS '评论人ID(关联平台用户表)'; COMMENT ON COLUMN "public"."t_stack_comment"."like_count" IS '评论被点赞次数'; -- 索引:优化文章评论查询、评论回复查询 CREATE INDEX "idx_t_stack_comment_article" ON "public"."t_stack_comment" USING btree ("article_id", "is_delete", "create_time"); CREATE INDEX "idx_t_stack_comment_parent" ON "public"."t_stack_comment" USING btree ("parent_id", "is_delete"); ``` ### 7. 点赞记录表(t_stack_like) **作用**:记录用户对文章/评论的点赞行为(防重复点赞) ```sql CREATE TABLE "public"."t_stack_like" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "relate_type" varchar(20) COLLATE "pg_catalog"."default" NOT NULL, -- 关联类型:ARTICLE(文章)/COMMENT(评论) "relate_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 关联ID(文章/评论ID) "user_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 点赞用户(平台用户ID) CONSTRAINT "pk_t_stack_like" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_like_user" FOREIGN KEY ("user_id") REFERENCES "public"."t_stack_user" ("id") ON DELETE RESTRICT ); COMMENT ON TABLE "public"."t_stack_like" IS '点赞记录表(支持文章/评论点赞)'; COMMENT ON COLUMN "public"."t_stack_like"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_like"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_like"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_like"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_like"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_like"."is_delete" IS '是否取消点赞(true-取消,false-有效)'; COMMENT ON COLUMN "public"."t_stack_like"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_like"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_like"."relate_type" IS '关联类型(ARTICLE/COMMENT)'; COMMENT ON COLUMN "public"."t_stack_like"."relate_id" IS '关联的文章ID或评论ID'; COMMENT ON COLUMN "public"."t_stack_like"."user_id" IS '点赞用户ID(关联平台用户表)'; -- 索引:同一用户对同一内容只能点赞一次 CREATE UNIQUE INDEX "uk_t_stack_like_unique" ON "public"."t_stack_like" USING btree ("user_id", "relate_type", "relate_id") WHERE "is_delete" = false; ``` ### 8. 文章收藏表(t_stack_collection) **作用**:记录用户收藏文章的行为(防重复收藏) ```sql CREATE TABLE "public"."t_stack_collection" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "article_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 被收藏文章ID "user_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 收藏用户(平台用户ID) "collection_time" timestamp(6) NOT NULL, -- 收藏时间 CONSTRAINT "pk_t_stack_collection" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_collection_article" FOREIGN KEY ("article_id") REFERENCES "public"."t_stack_article" ("id") ON DELETE CASCADE, CONSTRAINT "fk_t_stack_collection_user" FOREIGN KEY ("user_id") REFERENCES "public"."t_stack_user" ("id") ON DELETE RESTRICT ); COMMENT ON TABLE "public"."t_stack_collection" IS '文章收藏表'; COMMENT ON COLUMN "public"."t_stack_collection"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_collection"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_collection"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_collection"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_collection"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_collection"."is_delete" IS '是否取消收藏(true-取消,false-有效)'; COMMENT ON COLUMN "public"."t_stack_collection"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_collection"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_collection"."article_id" IS '被收藏的文章ID(关联文章表)'; COMMENT ON COLUMN "public"."t_stack_collection"."user_id" IS '收藏用户ID(关联平台用户表)'; COMMENT ON COLUMN "public"."t_stack_collection"."collection_time" IS '收藏的具体时间'; -- 索引:同一用户不能重复收藏同一文章 CREATE UNIQUE INDEX "uk_t_stack_collection_unique" ON "public"."t_stack_collection" USING btree ("user_id", "article_id") WHERE "is_delete" = false; ``` ### 9. 用户关注表(t_stack_follow) **作用**:记录用户之间的关注关系(如A关注B) ```sql CREATE TABLE "public"."t_stack_follow" ( "id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, "creater" varchar(32) COLLATE "pg_catalog"."default", "create_time" timestamp(6), "updater" varchar(32) COLLATE "pg_catalog"."default", "update_time" timestamp(6), "is_delete" bool DEFAULT false, "version" int4 DEFAULT 0, "tenant_id" varchar(32) COLLATE "pg_catalog"."default", "follower_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 关注者(主动关注的用户) "followed_id" varchar(32) COLLATE "pg_catalog"."default" NOT NULL, -- 被关注者(被关注的用户) "follow_time" timestamp(6) NOT NULL, -- 关注时间 CONSTRAINT "pk_t_stack_follow" PRIMARY KEY ("id"), CONSTRAINT "fk_t_stack_follow_follower" FOREIGN KEY ("follower_id") REFERENCES "public"."t_stack_user" ("id") ON DELETE RESTRICT, CONSTRAINT "fk_t_stack_follow_followed" FOREIGN KEY ("followed_id") REFERENCES "public"."t_stack_user" ("id") ON DELETE RESTRICT ); COMMENT ON TABLE "public"."t_stack_follow" IS '用户关注表(记录关注关系)'; COMMENT ON COLUMN "public"."t_stack_follow"."id" IS '唯一标识'; COMMENT ON COLUMN "public"."t_stack_follow"."creater" IS '创建人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_follow"."create_time" IS '创建时间'; COMMENT ON COLUMN "public"."t_stack_follow"."updater" IS '更新人(系统用户ID)'; COMMENT ON COLUMN "public"."t_stack_follow"."update_time" IS '更新时间'; COMMENT ON COLUMN "public"."t_stack_follow"."is_delete" IS '是否取消关注(true-取消,false-有效)'; COMMENT ON COLUMN "public"."t_stack_follow"."version" IS '版本号(乐观锁)'; COMMENT ON COLUMN "public"."t_stack_follow"."tenant_id" IS '多租户标识'; COMMENT ON COLUMN "public"."t_stack_follow"."follower_id" IS '关注者ID(关联平台用户表)'; COMMENT ON COLUMN "public"."t_stack_follow"."followed_id" IS '被关注者ID(关联平台用户表)'; COMMENT ON COLUMN "public"."t_stack_follow"."follow_time" IS '关注的具体时间'; -- 索引:同一用户不能重复关注同一对象 CREATE UNIQUE INDEX "uk_t_stack_follow_unique" ON "public"."t_stack_follow" USING btree ("follower_id", "followed_id") WHERE "is_delete" = false; -- 索引:查询用户的关注列表/粉丝列表 CREATE INDEX "idx_t_stack_follow_follower" ON "public"."t_stack_follow" USING btree ("follower_id", "is_delete"); CREATE INDEX "idx_t_stack_follow_followed" ON "public"."t_stack_follow" USING btree ("followed_id", "is_delete");
09-25
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值