45 lines
2.3 KiB
SQL
45 lines
2.3 KiB
SQL
-- 论坛第四阶段增强:签到、举报处理、隐藏回复、审核日志
|
|
-- 2026-06-05
|
|
|
|
-- AlterTable: forum_posts 增加 is_hidden 字段
|
|
ALTER TABLE `forum_posts` ADD COLUMN `is_hidden` BOOLEAN NOT NULL DEFAULT false;
|
|
ALTER TABLE `forum_posts` ADD INDEX `forum_posts_is_hidden_idx`(`is_hidden`);
|
|
|
|
-- AlterTable: forum_reports 增加 resolution/resolvedBy
|
|
ALTER TABLE `forum_reports` ADD COLUMN `resolution` VARCHAR(20) NULL;
|
|
ALTER TABLE `forum_reports` ADD COLUMN `resolved_by` INTEGER NULL;
|
|
ALTER TABLE `forum_reports` ADD CONSTRAINT `forum_reports_resolved_by_fkey` FOREIGN KEY (`resolved_by`) REFERENCES `users`(`id`) ON DELETE SET NULL ON UPDATE CASCADE;
|
|
ALTER TABLE `forum_reports` ADD INDEX `forum_reports_resolved_by_idx`(`resolved_by`);
|
|
|
|
-- CreateTable: 每日签到
|
|
CREATE TABLE `forum_check_ins` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`user_id` INTEGER NOT NULL,
|
|
`check_in_date` DATE NOT NULL,
|
|
`streak` INTEGER NOT NULL DEFAULT 1,
|
|
`points_earned` INTEGER NOT NULL DEFAULT 0,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `forum_check_ins_user_id_check_in_date_key`(`user_id`, `check_in_date`),
|
|
INDEX `forum_check_ins_user_id_check_in_date_idx`(`user_id`, `check_in_date`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
ALTER TABLE `forum_check_ins` ADD CONSTRAINT `forum_check_ins_user_id_fkey` FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- CreateTable: 审核日志
|
|
CREATE TABLE `forum_moderation_logs` (
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`actor_id` INTEGER NOT NULL,
|
|
`target_type` VARCHAR(20) NOT NULL,
|
|
`target_id` INTEGER NOT NULL,
|
|
`action` VARCHAR(30) NOT NULL,
|
|
`reason` VARCHAR(200) NULL,
|
|
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
PRIMARY KEY (`id`),
|
|
INDEX `forum_moderation_logs_actor_id_created_at_idx`(`actor_id`, `created_at`),
|
|
INDEX `forum_moderation_logs_target_type_target_id_idx`(`target_type`, `target_id`),
|
|
INDEX `forum_moderation_logs_created_at_idx`(`created_at`)
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
ALTER TABLE `forum_moderation_logs` ADD CONSTRAINT `forum_moderation_logs_actor_id_fkey` FOREIGN KEY (`actor_id`) REFERENCES `users`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|