修正权限

This commit is contained in:
2026-07-20 21:27:48 +08:00 Unverified
parent c31602593a
commit 76a1b66f53
12 changed files with 584 additions and 12 deletions
+47
View File
@@ -34,6 +34,14 @@ export const sqliteSchema = `
UNIQUE (school_id, name)
) STRICT;
CREATE TABLE IF NOT EXISTS school_student_partitions (
school_id TEXT PRIMARY KEY REFERENCES schools(id) ON DELETE CASCADE,
partition_key TEXT NOT NULL UNIQUE,
students_table TEXT NOT NULL UNIQUE,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
) STRICT;
CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
@@ -119,6 +127,17 @@ export const sqliteSchema = `
created_at TEXT NOT NULL
) STRICT;
CREATE TABLE IF NOT EXISTS exam_data_partitions (
exam_id TEXT PRIMARY KEY REFERENCES exams(id) ON DELETE CASCADE,
partition_key TEXT NOT NULL UNIQUE,
candidates_table TEXT NOT NULL UNIQUE,
admissions_table TEXT NOT NULL UNIQUE,
results_table TEXT NOT NULL UNIQUE,
centers_table TEXT NOT NULL UNIQUE,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
) STRICT;
CREATE TABLE IF NOT EXISTS exam_subjects (
id TEXT PRIMARY KEY,
exam_id TEXT NOT NULL REFERENCES exams(id) ON DELETE CASCADE,
@@ -497,6 +516,17 @@ export const mysqlSchema = [
UNIQUE KEY uq_classes_school_name (school_id, name),
CONSTRAINT fk_classes_school FOREIGN KEY (school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci`,
`CREATE TABLE IF NOT EXISTS school_student_partitions (
school_id VARCHAR(64) NOT NULL,
partition_key VARCHAR(32) NOT NULL,
students_table VARCHAR(64) NOT NULL,
created_at VARCHAR(35) NOT NULL,
updated_at VARCHAR(35) NOT NULL,
PRIMARY KEY (school_id),
UNIQUE KEY uq_school_partitions_key (partition_key),
UNIQUE KEY uq_school_partitions_table (students_table),
CONSTRAINT fk_school_partitions_school FOREIGN KEY (school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci`,
`CREATE TABLE IF NOT EXISTS users (
id VARCHAR(64) NOT NULL,
username VARCHAR(100) NOT NULL,
@@ -601,6 +631,23 @@ export const mysqlSchema = [
KEY idx_exams_archive (archived_at, exam_end),
CONSTRAINT fk_exams_archived_by FOREIGN KEY (archived_by) REFERENCES users(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci`,
`CREATE TABLE IF NOT EXISTS exam_data_partitions (
exam_id VARCHAR(64) NOT NULL,
partition_key VARCHAR(32) NOT NULL,
candidates_table VARCHAR(64) NOT NULL,
admissions_table VARCHAR(64) NOT NULL,
results_table VARCHAR(64) NOT NULL,
centers_table VARCHAR(64) NOT NULL,
created_at VARCHAR(35) NOT NULL,
updated_at VARCHAR(35) NOT NULL,
PRIMARY KEY (exam_id),
UNIQUE KEY uq_exam_partitions_key (partition_key),
UNIQUE KEY uq_exam_partitions_candidates (candidates_table),
UNIQUE KEY uq_exam_partitions_admissions (admissions_table),
UNIQUE KEY uq_exam_partitions_results (results_table),
UNIQUE KEY uq_exam_partitions_centers (centers_table),
CONSTRAINT fk_exam_partitions_exam FOREIGN KEY (exam_id) REFERENCES exams(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci`,
`CREATE TABLE IF NOT EXISTS exam_subjects (
id VARCHAR(64) NOT NULL,
exam_id VARCHAR(64) NOT NULL,