Files
juwan-backend/desc/sql/community/comments.sql
T
2026-02-27 19:17:01 +08:00

21 lines
926 B
SQL

CREATE TABLE comments (
id BIGINT PRIMARY KEY,
post_id BIGINT NOT NULL REFERENCES posts(id),
author_id BIGINT NOT NULL,
content TEXT NOT NULL,
like_count INT DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
deleted_at TIMESTAMPTZ
);
-- 基础索引
CREATE INDEX idx_comments_post ON comments(post_id, created_at) WHERE deleted_at IS NULL;
CREATE INDEX idx_comments_author ON comments(author_id, created_at DESC) WHERE deleted_at IS NULL;
-- 三元组索引用于评论内容搜索
CREATE INDEX idx_comments_content_trgm ON comments USING gin(content gin_trgm_ops)
WHERE deleted_at IS NULL;
-- 热门评论索引
CREATE INDEX idx_comments_post_likes ON comments(post_id, like_count DESC, created_at)
WHERE deleted_at IS NULL;