post&topic&forum IMP_Backend

Change-Id: I6510aa51e15b15c0e3232e3b8f3a16fe37ffa0c6
diff --git a/target/classes/CommunicationCenter.sql b/target/classes/CommunicationCenter.sql
new file mode 100644
index 0000000..040894a
--- /dev/null
+++ b/target/classes/CommunicationCenter.sql
@@ -0,0 +1,102 @@
+--forums 表 – 论坛板块
+CREATE TABLE `forums` (
+                          `id` BIGINT NOT NULL AUTO_INCREMENT,
+                          `slug` VARCHAR(255) NOT NULL UNIQUE,
+                          `name` VARCHAR(255) NOT NULL,
+                          `description` TEXT,
+                          `parent_id` BIGINT DEFAULT NULL,
+                          `sort_order` INT DEFAULT 0,
+                          `is_locked` BOOLEAN DEFAULT FALSE,
+                          PRIMARY KEY (`id`),
+                          FOREIGN KEY (`parent_id`) REFERENCES `forums`(`id`) ON DELETE SET NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+--topics 表 – 帖子主题(一个帖子)
+CREATE TABLE `topics` (
+                          `id` BIGINT NOT NULL AUTO_INCREMENT,
+                          `forum_id` BIGINT NOT NULL,
+                          `user_id` BIGINT NOT NULL,
+                          `title` VARCHAR(255) NOT NULL,
+                          `is_pinned` BOOLEAN DEFAULT FALSE,
+                          `is_locked` BOOLEAN DEFAULT FALSE,
+                          `created_at` DATETIME NOT NULL,
+                          `updated_at` DATETIME NOT NULL,
+                          PRIMARY KEY (`id`),
+                          FOREIGN KEY (`forum_id`) REFERENCES `forums`(`id`) ON DELETE CASCADE,
+                          FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
+);
+
+--posts 表 – 帖子内容(主题 + 回复)
+CREATE TABLE `posts` (
+                         `id` BIGINT NOT NULL AUTO_INCREMENT,
+                         `topic_id` BIGINT NOT NULL,
+                         `user_id` BIGINT NOT NULL,
+                         `content` TEXT NOT NULL,
+                         `created_at` DATETIME NOT NULL,
+                         `updated_at` DATETIME NOT NULL,
+                         `is_deleted` BOOLEAN DEFAULT FALSE,
+                         PRIMARY KEY (`id`),
+                         FOREIGN KEY (`topic_id`) REFERENCES `topics`(`id`) ON DELETE CASCADE,
+                         FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
+);
+
+--post_likes 表 – 帖子点赞记录
+CREATE TABLE `post_likes` (
+                              `user_id` BIGINT NOT NULL,
+                              `post_id` BIGINT NOT NULL,
+                              `created_at` DATETIME NOT NULL,
+                              PRIMARY KEY (`user_id`, `post_id`),
+                              FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,
+                              FOREIGN KEY (`post_id`) REFERENCES `posts`(`id`) ON DELETE CASCADE
+);
+
+--forum_tags 表 – 标签系统
+CREATE TABLE `forum_tags` (
+                              `id` BIGINT NOT NULL AUTO_INCREMENT,
+                              `name` VARCHAR(50) NOT NULL UNIQUE,
+                              `color` VARCHAR(10) DEFAULT '#ccc',
+                              PRIMARY KEY (`id`)
+);
+
+--中间表:topic_tags
+CREATE TABLE `topic_tags` (
+                              `topic_id` BIGINT NOT NULL,
+                              `tag_id` BIGINT NOT NULL,
+                              PRIMARY KEY (`topic_id`, `tag_id`),
+                              FOREIGN KEY (`topic_id`) REFERENCES `topics`(`id`) ON DELETE CASCADE,
+                              FOREIGN KEY (`tag_id`) REFERENCES `forum_tags`(`id`) ON DELETE CASCADE
+);
+
+--topic_views 表 – 浏览记录
+CREATE TABLE `topic_views` (
+                               `topic_id` BIGINT NOT NULL,
+                               `user_id` BIGINT NOT NULL,
+                               `last_viewed_at` DATETIME NOT NULL,
+                               PRIMARY KEY (`topic_id`, `user_id`),
+                               FOREIGN KEY (`topic_id`) REFERENCES `topics`(`id`) ON DELETE CASCADE,
+                               FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE
+);
+
+--topic_subscriptions 表 – 用户关注(收藏)的帖子
+CREATE TABLE `topic_subscriptions` (
+                                       `user_id` BIGINT NOT NULL,
+                                       `topic_id` BIGINT NOT NULL,
+                                       `subscribed_at` DATETIME NOT NULL,
+                                       PRIMARY KEY (`user_id`, `topic_id`),
+                                       FOREIGN KEY (`user_id`) REFERENCES `users`(`id`) ON DELETE CASCADE,
+                                       FOREIGN KEY (`topic_id`) REFERENCES `topics`(`id`) ON DELETE CASCADE
+);
+
+--用户论坛活动记录表
+CREATE TABLE `user_forum_history` (
+                                      `id` BIGINT NOT NULL AUTO_INCREMENT,
+                                      `user_id` BIGINT NOT NULL,
+                                      `type` ENUM('topic', 'reply') NOT NULL COMMENT '操作类型:发主题或回复',
+                                      `target_id` BIGINT NOT NULL COMMENT 'topic_id 或 post_id',
+                                      `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+                                      PRIMARY KEY (`id`),
+                                      INDEX `idx_user_id` (`user_id`),
+                                      INDEX `idx_type_target` (`type`, `target_id`),
+                                      CONSTRAINT `fk_ufh_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
+
+--
\ No newline at end of file