Explorar o código

feat:数据表增加逻辑删除字段和相关的注释

yangyi hai 2 meses
pai
achega
43a70d0fe8
Modificáronse 1 ficheiros con 18 adicións e 0 borrados
  1. 18 0
      sql/postgersql.sql

+ 18 - 0
sql/postgersql.sql

@@ -79,6 +79,7 @@ CREATE TABLE dev.problem (
                          is_public SMALLINT NOT NULL DEFAULT 0 CHECK (is_public IN (0, 1)),
                          difficulty VARCHAR(10) CHECK (difficulty IN ('easy', 'medium', 'hard')),
                          created_by BIGINT,
+                         delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                          created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                          updated_at TIMESTAMP NOT NULL DEFAULT NOW()
 );
@@ -94,6 +95,7 @@ COMMENT ON COLUMN dev.problem.accepted_count IS '通过次数(AC次数)';
 COMMENT ON COLUMN dev.problem.is_public IS '是否公开题目,0-未公开,1-公开';
 COMMENT ON COLUMN dev.problem.difficulty IS '难度:easy-简单,medium-中等,hard-困难';
 COMMENT ON COLUMN dev.problem.created_by IS '创建者ID,逻辑外键,关联用户表';
+COMMENT ON COLUMN dev.problem.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.problem.created_at IS '创建时间';
 COMMENT ON COLUMN dev.problem.updated_at IS '更新时间';
 
@@ -106,6 +108,7 @@ CREATE TABLE dev.problem_case (
                               output TEXT,
                               description TEXT,
                               sort_order INT NOT NULL DEFAULT 0,
+                              delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                               created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                               updated_at TIMESTAMP NOT NULL DEFAULT NOW()
 );
@@ -117,6 +120,7 @@ COMMENT ON COLUMN dev.problem_case.input IS '样例输入';
 COMMENT ON COLUMN dev.problem_case.output IS '样例输出';
 COMMENT ON COLUMN dev.problem_case.description IS '样例说明';
 COMMENT ON COLUMN dev.problem_case.sort_order IS '显示顺序';
+COMMENT ON COLUMN dev.problem_case.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.problem_case.created_at IS '创建时间';
 COMMENT ON COLUMN dev.problem_case.updated_at IS '更新时间';
 
@@ -129,6 +133,7 @@ CREATE TABLE dev.problem_test (
                               output TEXT,
                               sort_order INT NOT NULL DEFAULT 0,
                               is_hidden INT NOT NULL DEFAULT 0,
+                              delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                               created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                               updated_at TIMESTAMP NOT NULL DEFAULT NOW()
 );
@@ -140,6 +145,7 @@ COMMENT ON COLUMN dev.problem_test.input IS '测试输入';
 COMMENT ON COLUMN dev.problem_test.output IS '测试输出';
 COMMENT ON COLUMN dev.problem_test.sort_order IS '判题顺序';
 COMMENT ON COLUMN dev.problem_test.is_hidden IS '是否隐藏用例,0-不隐藏,1-隐藏(不展示给用户)';
+COMMENT ON COLUMN dev.problem_test.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.problem_test.created_at IS '创建时间';
 COMMENT ON COLUMN dev.problem_test.updated_at IS '更新时间';
 
@@ -159,6 +165,7 @@ CREATE TABLE dev.submission (
                             score INT,
                             total_test_cases INT NOT NULL DEFAULT 0,
                             passed_test_cases INT NOT NULL DEFAULT 0,
+                            delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                             created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                             updated_at TIMESTAMP NOT NULL DEFAULT NOW()
 );
@@ -177,6 +184,7 @@ COMMENT ON COLUMN dev.submission.memory_used_kb IS '内存占用(KB)';
 COMMENT ON COLUMN dev.submission.score IS '该题得分(用于比赛)';
 COMMENT ON COLUMN dev.submission.total_test_cases IS '总测试用例数';
 COMMENT ON COLUMN dev.submission.passed_test_cases IS '通过的测试用例数';
+COMMENT ON COLUMN dev.submission.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.submission.created_at IS '创建时间';
 COMMENT ON COLUMN dev.submission.updated_at IS '更新时间';
 
@@ -186,6 +194,7 @@ CREATE TABLE dev.category (
                           id BIGSERIAL PRIMARY KEY,
                           category_name VARCHAR(50) NOT NULL UNIQUE,
                           description TEXT,
+                          delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                           created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                           updated_at TIMESTAMP NOT NULL DEFAULT NOW()
 );
@@ -194,6 +203,7 @@ COMMENT ON TABLE dev.category IS '题目类别表(如动态规划、贪心等
 COMMENT ON COLUMN dev.category.id IS '类别唯一标识';
 COMMENT ON COLUMN dev.category.category_name IS '类别名称';
 COMMENT ON COLUMN dev.category.description IS '类别描述';
+COMMENT ON COLUMN dev.category.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.category.created_at IS '创建时间';
 COMMENT ON COLUMN dev.category.updated_at IS '更新时间';
 
@@ -202,6 +212,7 @@ DROP TABLE IF EXISTS dev.problem_category_rel;
 CREATE TABLE dev.problem_category_rel (
                                       problem_id BIGINT NOT NULL,
                                       category_id BIGINT NOT NULL,
+                                      delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                                       created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                                       updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
                                       PRIMARY KEY (problem_id, category_id)
@@ -210,6 +221,7 @@ CREATE TABLE dev.problem_category_rel (
 COMMENT ON TABLE dev.problem_category_rel IS '题目与类别关联表';
 COMMENT ON COLUMN dev.problem_category_rel.problem_id IS '题目ID,逻辑外键,关联题目表';
 COMMENT ON COLUMN dev.problem_category_rel.category_id IS '类别ID,逻辑外键,关联类别表';
+COMMENT ON COLUMN dev.problem_category_rel.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.problem_category_rel.created_at IS '创建时间';
 COMMENT ON COLUMN dev.problem_category_rel.updated_at IS '更新时间';
 
@@ -225,6 +237,7 @@ CREATE TABLE dev.contest (
                          end_datetime TIMESTAMP NOT NULL CHECK (end_datetime > start_datetime),
                          status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'running', 'ended')),
                          created_by BIGINT,
+                         delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                          created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                          updated_at TIMESTAMP NOT NULL DEFAULT NOW()
 );
@@ -239,6 +252,7 @@ COMMENT ON COLUMN dev.contest.start_datetime IS '开始时间';
 COMMENT ON COLUMN dev.contest.end_datetime IS '结束时间';
 COMMENT ON COLUMN dev.contest.status IS '状态:pending-未开始,running-进行中,ended-已结束';
 COMMENT ON COLUMN dev.contest.created_by IS '创建者ID,逻辑外键,关联用户表(管理员或教练)';
+COMMENT ON COLUMN dev.contest.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.contest.created_at IS '创建时间';
 COMMENT ON COLUMN dev.contest.updated_at IS '更新时间';
 
@@ -249,6 +263,7 @@ CREATE TABLE dev.contest_problem (
                                  problem_id BIGINT NOT NULL,
                                  display_order INT NOT NULL,
                                  score INT NOT NULL,
+                                 delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                                  created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                                  updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
                                  PRIMARY KEY (contest_id, problem_id)
@@ -259,6 +274,7 @@ COMMENT ON COLUMN dev.contest_problem.contest_id IS '比赛ID,逻辑外键,
 COMMENT ON COLUMN dev.contest_problem.problem_id IS '题目ID,逻辑外键,关联题目表';
 COMMENT ON COLUMN dev.contest_problem.display_order IS '题目在比赛中的显示序号';
 COMMENT ON COLUMN dev.contest_problem.score IS '本题分值';
+COMMENT ON COLUMN dev.contest_problem.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.contest_problem.created_at IS '创建时间';
 COMMENT ON COLUMN dev.contest_problem.updated_at IS '更新时间';
 
@@ -268,6 +284,7 @@ CREATE TABLE dev.contest_registration (
                                       id BIGSERIAL PRIMARY KEY,
                                       contest_id BIGINT NOT NULL,
                                       user_id BIGINT NOT NULL,
+                                      delete_flag INT NOT NULL DEFAULT 0 CHECK (delete_flag IN (0, 1)),
                                       created_at TIMESTAMP NOT NULL DEFAULT NOW(),
                                       updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
                                       UNIQUE (contest_id, user_id)
@@ -277,6 +294,7 @@ COMMENT ON TABLE dev.contest_registration IS '比赛报名表';
 COMMENT ON COLUMN dev.contest_registration.id IS '报名记录ID';
 COMMENT ON COLUMN dev.contest_registration.contest_id IS '比赛ID,逻辑外键,关联比赛表';
 COMMENT ON COLUMN dev.contest_registration.user_id IS '报名用户ID,逻辑外键,关联用户表';
+COMMENT ON COLUMN dev.contest_registration.delete_flag IS '删除标记';
 COMMENT ON COLUMN dev.contest_registration.created_at IS '创建时间';
 COMMENT ON COLUMN dev.contest_registration.updated_at IS '更新时间';