|
|
-- 禁用外键检查
|
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
|
|
-- 如果数据库存在,删除它
|
|
|
DROP DATABASE IF EXISTS glucowisebase;
|
|
|
|
|
|
-- 创建数据库
|
|
|
CREATE DATABASE glucowisebase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
|
|
-- 使用数据库
|
|
|
USE glucowisebase;
|
|
|
|
|
|
-- ==================== 创建表(按依赖顺序) ====================
|
|
|
|
|
|
-- 1. 首先创建没有外键依赖的表
|
|
|
CREATE TABLE `users` (
|
|
|
`id` bigint NOT NULL,
|
|
|
`username` varchar(50) DEFAULT NULL,
|
|
|
`wx_id` varchar(20) DEFAULT NULL,
|
|
|
`avatar_url` varchar(255) DEFAULT NULL,
|
|
|
`gender` enum('male','female') DEFAULT NULL,
|
|
|
`birthday` date DEFAULT NULL,
|
|
|
`status` enum('active','inactive','banned') DEFAULT NULL,
|
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
|
`banned_until` timestamp NULL DEFAULT NULL,
|
|
|
`background_url` varchar(255) DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `roles` (
|
|
|
`id` bigint NOT NULL,
|
|
|
`role_name` varchar(50) DEFAULT NULL,
|
|
|
`description` text,
|
|
|
`permissions` json DEFAULT NULL,
|
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `knowledge_base` (
|
|
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
`name` varchar(200) DEFAULT NULL,
|
|
|
`url` varchar(255) DEFAULT NULL,
|
|
|
`updated_at` timestamp NULL DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`)
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
-- 2. 创建依赖 users 和 roles 的表
|
|
|
CREATE TABLE `admins` (
|
|
|
`id` bigint NOT NULL,
|
|
|
`password` varchar(255) DEFAULT NULL,
|
|
|
`real_name` varchar(255) DEFAULT NULL,
|
|
|
`phone` varchar(20) DEFAULT NULL,
|
|
|
`last_login` timestamp NULL DEFAULT NULL,
|
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
|
`role_id` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_admin_role` (`role_id`),
|
|
|
CONSTRAINT `FK_admin_role` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
-- 3. 创建依赖 users 的表
|
|
|
CREATE TABLE `ai_conversations` (
|
|
|
`id` bigint NOT NULL,
|
|
|
`question` text,
|
|
|
`answer` text,
|
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
|
`user_id` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_ai_user` (`user_id`),
|
|
|
CONSTRAINT `FK_ai_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `devices` (
|
|
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
`device_name` varchar(100) DEFAULT NULL,
|
|
|
`device_type` varchar(50) DEFAULT NULL,
|
|
|
`device_model` varchar(100) DEFAULT NULL,
|
|
|
`mac_address` varchar(20) DEFAULT NULL,
|
|
|
`connection_type` enum('bluetooth','wifi') DEFAULT NULL,
|
|
|
`status` enum('active','inactive','error') DEFAULT NULL,
|
|
|
`last_sync_time` timestamp NULL DEFAULT NULL,
|
|
|
`bought_date` date DEFAULT NULL,
|
|
|
`user_id` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_device_user` (`user_id`),
|
|
|
CONSTRAINT `FK_device_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `families` (
|
|
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
`family_name` varchar(100) DEFAULT NULL,
|
|
|
`description` text,
|
|
|
`creator_user_id` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_family_creator` (`creator_user_id`),
|
|
|
CONSTRAINT `FK_family_creator` FOREIGN KEY (`creator_user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `follows` (
|
|
|
`follower_id` bigint NOT NULL,
|
|
|
`followed_id` bigint NOT NULL,
|
|
|
PRIMARY KEY (`follower_id`,`followed_id`),
|
|
|
KEY `FK_follow_followed` (`followed_id`),
|
|
|
CONSTRAINT `FK_follow_followed` FOREIGN KEY (`followed_id`) REFERENCES `users` (`id`),
|
|
|
CONSTRAINT `FK_follow_follower` FOREIGN KEY (`follower_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `messages` (
|
|
|
`message_type` enum('system','reminder','alert') DEFAULT NULL,
|
|
|
`content` text,
|
|
|
`user_id` bigint NOT NULL,
|
|
|
`created_at` timestamp NOT NULL,
|
|
|
PRIMARY KEY (`user_id`,`created_at`),
|
|
|
CONSTRAINT `FK_message_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `monitoring_plans` (
|
|
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
`frequency` json DEFAULT NULL,
|
|
|
`reminder_settings` json DEFAULT NULL,
|
|
|
`user_id` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_plan_user` (`user_id`),
|
|
|
CONSTRAINT `FK_plan_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `posts` (
|
|
|
`id` bigint NOT NULL,
|
|
|
`content` text,
|
|
|
`images` json DEFAULT NULL,
|
|
|
`visibility` enum('PUBLIC','PRIVATE') DEFAULT NULL,
|
|
|
`status` enum('pending','approved','rejected') DEFAULT NULL,
|
|
|
`author_id` bigint DEFAULT NULL,
|
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
|
`approved_at` timestamp NULL DEFAULT NULL,
|
|
|
`reviewed_by` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_post_author` (`author_id`),
|
|
|
KEY `FK_post_reviewer` (`reviewed_by`),
|
|
|
CONSTRAINT `FK_post_author` FOREIGN KEY (`author_id`) REFERENCES `users` (`id`),
|
|
|
CONSTRAINT `FK_post_reviewer` FOREIGN KEY (`reviewed_by`) REFERENCES `admins` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `private_messages` (
|
|
|
`url` varchar(255) DEFAULT NULL,
|
|
|
`content` text,
|
|
|
`message_type` enum('text','image','audio') DEFAULT NULL,
|
|
|
`sender_id` bigint NOT NULL,
|
|
|
`receiver_id` bigint NOT NULL,
|
|
|
`created_at` timestamp NOT NULL,
|
|
|
PRIMARY KEY (`sender_id`,`receiver_id`,`created_at`),
|
|
|
KEY `FK_private_message_receiver` (`receiver_id`),
|
|
|
CONSTRAINT `FK_private_message_receiver` FOREIGN KEY (`receiver_id`) REFERENCES `users` (`id`),
|
|
|
CONSTRAINT `FK_private_message_sender` FOREIGN KEY (`sender_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `reports_users` (
|
|
|
`reporter_id` bigint NOT NULL,
|
|
|
`reported_user_id` bigint NOT NULL,
|
|
|
`report_type` varchar(50) DEFAULT NULL,
|
|
|
`description` text,
|
|
|
`status` enum('pending','approved','rejected') DEFAULT NULL,
|
|
|
`images_url` json DEFAULT NULL,
|
|
|
`reviewed_by` bigint DEFAULT NULL,
|
|
|
`processed_at` timestamp NULL DEFAULT NULL,
|
|
|
`result` text,
|
|
|
`created_at` timestamp NOT NULL,
|
|
|
PRIMARY KEY (`reporter_id`,`reported_user_id`,`created_at`),
|
|
|
KEY `FK_report_user_reported` (`reported_user_id`),
|
|
|
KEY `FK_report_user_admin` (`reviewed_by`),
|
|
|
CONSTRAINT `FK_report_user_admin` FOREIGN KEY (`reviewed_by`) REFERENCES `admins` (`id`),
|
|
|
CONSTRAINT `FK_report_user_reported` FOREIGN KEY (`reported_user_id`) REFERENCES `users` (`id`),
|
|
|
CONSTRAINT `FK_report_user_reporter` FOREIGN KEY (`reporter_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
-- 4. 创建依赖其他表的表
|
|
|
CREATE TABLE `family_members` (
|
|
|
`family_id` bigint NOT NULL,
|
|
|
`user_id` bigint NOT NULL,
|
|
|
PRIMARY KEY (`family_id`,`user_id`),
|
|
|
KEY `FK_family_member_user` (`user_id`),
|
|
|
CONSTRAINT `FK_family_member_family` FOREIGN KEY (`family_id`) REFERENCES `families` (`id`),
|
|
|
CONSTRAINT `FK_family_member_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `health_data` (
|
|
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
`data_type` enum('glucose','heart_rate','oxygen_saturation') DEFAULT NULL,
|
|
|
`value` decimal(8,2) DEFAULT NULL,
|
|
|
`unit` varchar(20) DEFAULT NULL,
|
|
|
`measurement_time` timestamp NULL DEFAULT NULL,
|
|
|
`data_source` enum('manual','auto') DEFAULT NULL,
|
|
|
`user_id` bigint DEFAULT NULL,
|
|
|
`device_id` bigint DEFAULT NULL,
|
|
|
`created_at` timestamp NULL DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_health_user` (`user_id`),
|
|
|
KEY `FK_health_device` (`device_id`),
|
|
|
CONSTRAINT `FK_health_device` FOREIGN KEY (`device_id`) REFERENCES `devices` (`id`),
|
|
|
CONSTRAINT `FK_health_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `home_banners` (
|
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
|
`image_url` varchar(255) DEFAULT NULL,
|
|
|
`link_url` varchar(255) DEFAULT NULL,
|
|
|
`interval_time` int DEFAULT NULL,
|
|
|
`created_by` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `FK_banner_admin` (`created_by`),
|
|
|
CONSTRAINT `FK_banner_admin` FOREIGN KEY (`created_by`) REFERENCES `admins` (`id`)
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `interactions` (
|
|
|
`content` text,
|
|
|
`commenter_id` bigint NOT NULL,
|
|
|
`target_user_id` bigint DEFAULT NULL,
|
|
|
`post_id` bigint NOT NULL,
|
|
|
`created_at` timestamp NOT NULL,
|
|
|
PRIMARY KEY (`commenter_id`,`post_id`,`created_at`),
|
|
|
KEY `FK_interaction_target_user` (`target_user_id`),
|
|
|
KEY `FK_interaction_post` (`post_id`),
|
|
|
CONSTRAINT `FK_interaction_commenter` FOREIGN KEY (`commenter_id`) REFERENCES `users` (`id`),
|
|
|
CONSTRAINT `FK_interaction_post` FOREIGN KEY (`post_id`) REFERENCES `posts` (`id`),
|
|
|
CONSTRAINT `FK_interaction_target_user` FOREIGN KEY (`target_user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `likes` (
|
|
|
`user_id` bigint NOT NULL,
|
|
|
`target_id` bigint NOT NULL,
|
|
|
PRIMARY KEY (`user_id`,`target_id`),
|
|
|
KEY `FK_like_post` (`target_id`),
|
|
|
CONSTRAINT `FK_like_post` FOREIGN KEY (`target_id`) REFERENCES `posts` (`id`),
|
|
|
CONSTRAINT `FK_like_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `reports_posts` (
|
|
|
`reporter_id` bigint NOT NULL,
|
|
|
`post_id` bigint NOT NULL,
|
|
|
`report_type` varchar(50) DEFAULT NULL,
|
|
|
`description` text,
|
|
|
`status` enum('pending','reviewed','dismissed') DEFAULT NULL,
|
|
|
`reviewed_by` bigint DEFAULT NULL,
|
|
|
`processed_at` timestamp NULL DEFAULT NULL,
|
|
|
`created_at` timestamp NOT NULL,
|
|
|
`result` text,
|
|
|
PRIMARY KEY (`reporter_id`,`post_id`,`created_at`),
|
|
|
KEY `FK_report_post_post` (`post_id`),
|
|
|
KEY `FK_report_post_admin` (`reviewed_by`),
|
|
|
CONSTRAINT `FK_report_post_admin` FOREIGN KEY (`reviewed_by`) REFERENCES `admins` (`id`),
|
|
|
CONSTRAINT `FK_report_post_post` FOREIGN KEY (`post_id`) REFERENCES `posts` (`id`),
|
|
|
CONSTRAINT `FK_report_post_reporter` FOREIGN KEY (`reporter_id`) REFERENCES `users` (`id`)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE TABLE `tweets` (
|
|
|
`id` bigint NOT NULL AUTO_INCREMENT,
|
|
|
`title` varchar(200) DEFAULT NULL,
|
|
|
`url` varchar(500) NOT NULL,
|
|
|
`content` text,
|
|
|
`tags` json DEFAULT NULL,
|
|
|
`view_count` int DEFAULT NULL,
|
|
|
`create_at` timestamp NULL DEFAULT NULL,
|
|
|
`base_id` bigint DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
KEY `idx_tweets_base_id` (`base_id`),
|
|
|
KEY `idx_tweets_create_at` (`create_at`),
|
|
|
CONSTRAINT `FK_tweet_knowledge_base` FOREIGN KEY (`base_id`) REFERENCES `knowledge_base` (`id`)
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
|
|
|
|
-- ==================== 插入数据(按依赖顺序) ====================
|
|
|
|
|
|
-- 1. 先插入 roles
|
|
|
INSERT INTO `roles` VALUES
|
|
|
(1,'超级管理员','系统最高权限管理员','[\"user:manage\", \"content:manage\", \"system:config\"]','2024-01-01 08:00:00'),
|
|
|
(2,'内容管理员','负责内容审核和管理','[\"content:review\", \"content:publish\"]','2024-01-01 08:00:00'),
|
|
|
(3,'客服管理员','处理用户反馈和举报','[\"report:handle\", \"user:support\"]','2024-01-01 08:00:00');
|
|
|
|
|
|
-- 2. 插入 users
|
|
|
INSERT INTO `users` VALUES
|
|
|
(1,'张三','wx_zhangsan','https://example.com/avatar1.jpg','male','1985-03-15','active','2024-01-15 18:00:00','2024-01-15 18:00:00',NULL,NULL),
|
|
|
(2,'李四','wx_lisi','https://example.com/avatar2.jpg','female','1990-07-22','active','2024-01-16 19:30:00','2024-01-16 19:30:00',NULL,NULL),
|
|
|
(3,'张三','wx_wangwu','/images/avatar1.png','female','1988-12-07','active','2024-01-17 17:15:00','2025-12-09 07:19:23',NULL,'/images/covers/profile-cover.jpg'),
|
|
|
(4,'赵六','wx_zhaoliu','https://example.com/avatar4.jpg','female','1992-05-30','inactive','2024-01-18 22:20:00','2024-01-18 22:20:00',NULL,NULL),
|
|
|
(5,'孙七','wx_sunqi','https://example.com/avatar5.jpg','male','1987-09-12','active','2024-01-20 00:45:00','2024-01-20 00:45:00',NULL,NULL),
|
|
|
(176,'美滋滋','demo_user_1','/images/avatar1.png','male',NULL,'active','2025-12-09 05:20:11','2025-12-09 05:20:11',NULL,NULL);
|
|
|
|
|
|
-- 3. 插入 admins
|
|
|
INSERT INTO `admins` VALUES
|
|
|
(1,'11111','黄思慧','15382829127','2025-12-09 07:07:43','2024-01-01 16:00:00',1),
|
|
|
(2,'hashed_password_2','李审核员','13800138002','2024-11-05 18:30:00','2024-01-01 16:00:00',2),
|
|
|
(3,'hashed_password_3','王客服','13800138003','2024-11-05 19:15:00','2024-01-01 16:00:00',3);
|
|
|
|
|
|
-- 4. 插入其他表的数据(按照你的原始数据)
|
|
|
-- 这里按照你的原始INSERT语句顺序,但我会调整以确保外键依赖
|
|
|
|
|
|
-- 插入 knowledge_base
|
|
|
INSERT INTO `knowledge_base` VALUES
|
|
|
(4,'新华网健康','http://www.xinhuanet.com/health/','2025-12-09 07:11:07'),
|
|
|
(5,'人民健康频道','http://health.people.com.cn/','2025-12-09 05:18:04');
|
|
|
|
|
|
-- 插入 ai_conversations
|
|
|
INSERT INTO `ai_conversations` VALUES
|
|
|
(1,'血糖正常范围是多少?','正常空腹血糖范围为3.9-6.1mmol/L,餐后2小时血糖应小于7.8mmol/L。','2024-11-05 17:00:00',1),
|
|
|
(2,'如何控制餐后血糖?','建议控制碳水摄入、适量运动、按时用药,并定期监测血糖。','2024-11-05 18:00:00',2),
|
|
|
(3,'糖尿病可以吃什么水果?','建议选择低GI水果如苹果、梨、草莓等,注意控制分量。','2024-11-05 19:00:00',3);
|
|
|
|
|
|
-- 插入 devices
|
|
|
INSERT INTO `devices` VALUES
|
|
|
(1,'血糖仪001','血糖仪','GT-100','00:1B:44:11:3A:B7','bluetooth','active','2024-11-05 16:30:00','2024-01-10',1),
|
|
|
(2,'智能手环','手环','Band-Pro','00:1B:44:11:3A:B8','bluetooth','active','2024-11-05 17:15:00','2024-02-15',2),
|
|
|
(3,'血氧仪','血氧监测','OX-200','00:1B:44:11:3A:B9','bluetooth','inactive','2024-10-20 21:00:00','2024-03-20',3);
|
|
|
|
|
|
-- 插入 families
|
|
|
INSERT INTO `families` VALUES
|
|
|
(1,'张家','张三的家庭组',1),
|
|
|
(2,'李家','李四的家庭组',2);
|
|
|
|
|
|
-- 插入 family_members
|
|
|
INSERT INTO `family_members` VALUES
|
|
|
(1,1),(2,2),(1,3),(2,4);
|
|
|
|
|
|
-- 插入 follows
|
|
|
INSERT INTO `follows` VALUES
|
|
|
(2,1),(3,1),(1,2),(3,2),(1,3);
|
|
|
|
|
|
-- 插入 health_data
|
|
|
INSERT INTO `health_data` VALUES
|
|
|
(1,'glucose',5.60,'mmol/L','2024-11-05 16:00:00','auto',1,1,'2024-11-05 16:00:00'),
|
|
|
(2,'glucose',6.20,'mmol/L','2024-11-05 20:30:00','manual',1,NULL,'2024-11-05 20:30:00'),
|
|
|
(3,'heart_rate',72.00,'bpm','2024-11-05 17:00:00','auto',2,2,'2024-11-05 17:00:00'),
|
|
|
(4,'oxygen_saturation',98.00,'%','2024-11-05 18:00:00','auto',3,3,'2024-11-05 18:00:00'),
|
|
|
(5,'glucose',5.80,'mmol/L','2024-11-05 22:00:00','manual',2,NULL,'2024-11-05 22:00:00');
|
|
|
|
|
|
-- 插入 home_banners
|
|
|
INSERT INTO `home_banners` VALUES
|
|
|
(7,'http://localhost:8080/uploads/banner-images/f4513832-8f7d-47d7-89ff-8c53b0a27cf1.jpg','24',5000,1),
|
|
|
(8,'http://localhost:8080/uploads/banner-images/0cce189f-537d-4f17-9570-664d2586cc34.jpg','6',5000,1),
|
|
|
(9,'http://localhost:8080/uploads/banner-images/f8dc20f0-c746-4951-b147-da1e8ed2762b.jpg','8',5000,1),
|
|
|
(10,'http://localhost:8080/uploads/banner-images/0a15e587-da0c-49be-8d3e-f13fccabbcc7.jpg','22',5000,1);
|
|
|
|
|
|
-- 插入 interactions
|
|
|
INSERT INTO `interactions` VALUES
|
|
|
('@李四 你的运动计划是怎样的?',1,2,2,'2024-11-05 19:30:00'),
|
|
|
('很好的分享,学到了!',2,NULL,1,'2024-11-05 18:45:00'),
|
|
|
('@张三 我主要是晨跑和力量训练',2,1,2,'2024-11-05 19:35:00'),
|
|
|
('谢谢你的经验分享!',3,NULL,1,'2024-11-05 19:00:00');
|
|
|
|
|
|
-- 插入 likes
|
|
|
INSERT INTO `likes` VALUES
|
|
|
(1,1),(2,1),(3,1),(1,2),(2,3);
|
|
|
|
|
|
-- 插入 messages
|
|
|
INSERT INTO `messages` VALUES
|
|
|
('system','系统维护通知:本周六凌晨2-4点进行系统升级',1,'2024-11-05 16:00:00'),
|
|
|
('reminder','提醒:您今天还有1次血糖未测量',1,'2024-11-06 02:00:00'),
|
|
|
('alert','警告:您的血糖值异常,请及时处理',2,'2024-11-05 20:30:00');
|
|
|
|
|
|
-- 插入 monitoring_plans
|
|
|
INSERT INTO `monitoring_plans` (`id`, `frequency`, `reminder_settings`, `user_id`) VALUES
|
|
|
(4, '[
|
|
|
{
|
|
|
"time": "空腹",
|
|
|
"displayTime": "07:00",
|
|
|
"alarm": true,
|
|
|
"alarmTime": "07:00",
|
|
|
"days": [
|
|
|
{"day": "一", "status": "checked", "text": "✓", "completed": true},
|
|
|
{"day": "二", "status": "checked", "text": "✓", "completed": true},
|
|
|
{"day": "三", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "四", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "五", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "六", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "日", "status": "empty", "text": "", "completed": false}
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
"time": "早餐后",
|
|
|
"displayTime": "09:00",
|
|
|
"alarm": true,
|
|
|
"alarmTime": "09:00",
|
|
|
"days": [
|
|
|
{"day": "一", "status": "checked", "text": "✓", "completed": true},
|
|
|
{"day": "二", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "三", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "四", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "五", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "六", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "日", "status": "empty", "text": "", "completed": false}
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
"time": "午餐前",
|
|
|
"displayTime": "11:30",
|
|
|
"alarm": false,
|
|
|
"alarmTime": "",
|
|
|
"days": [
|
|
|
{"day": "一", "status": "disabled", "text": "", "completed": false},
|
|
|
{"day": "二", "status": "disabled", "text": "", "completed": false},
|
|
|
{"day": "三", "status": "disabled", "text": "", "completed": false},
|
|
|
{"day": "四", "status": "disabled", "text": "", "completed": false},
|
|
|
{"day": "五", "status": "disabled", "text": "", "completed": false},
|
|
|
{"day": "六", "status": "empty", "text": "", "completed": false},
|
|
|
{"day": "日", "status": "empty", "text": "", "completed": false}
|
|
|
]
|
|
|
}
|
|
|
]',
|
|
|
'[
|
|
|
{
|
|
|
"id": 1,
|
|
|
"time": "07:00",
|
|
|
"label": "空腹测量",
|
|
|
"repeat": "daily",
|
|
|
"enabled": true,
|
|
|
"days": [true, true, true, true, true, true, true]
|
|
|
},
|
|
|
{
|
|
|
"id": 2,
|
|
|
"time": "09:00",
|
|
|
"label": "早餐后测量",
|
|
|
"repeat": "weekdays",
|
|
|
"enabled": true,
|
|
|
"days": [true, true, true, true, true, false, false]
|
|
|
},
|
|
|
{
|
|
|
"id": 3,
|
|
|
"time": "17:30",
|
|
|
"label": "晚餐前",
|
|
|
"repeat": "daily",
|
|
|
"enabled": true,
|
|
|
"days": [true, true, true, true, true, true, true]
|
|
|
}
|
|
|
]', 1);
|
|
|
|
|
|
-- 插入 posts
|
|
|
INSERT INTO `posts` VALUES
|
|
|
(1,'今天血糖控制得很好,分享一下我的饮食经验!','[\"img1.jpg\", \"img2.jpg\"]','PUBLIC','approved',1,'2024-11-05 18:00:00','2024-11-05 18:30:00',2),
|
|
|
(2,'运动对血糖控制真的很重要,大家要坚持锻炼!','[\"exercise.jpg\"]','PUBLIC','approved',2,'2024-11-05 19:00:00','2024-11-05 19:15:00',2),
|
|
|
(3,'求助:最近血糖波动比较大,有什么建议吗?',NULL,'PUBLIC','pending',3,'2024-11-05 20:00:00',NULL,NULL),
|
|
|
(4,'私人记录:今天的用药情况',NULL,'PRIVATE','approved',1,'2024-11-05 21:00:00','2024-11-05 21:05:00',2);
|
|
|
|
|
|
-- 插入 private_messages
|
|
|
INSERT INTO `private_messages` VALUES
|
|
|
(NULL,'你好,想请教一下血糖监测的问题','text',2,1,'2024-11-05 22:00:00'),
|
|
|
(NULL,'当然可以,有什么具体问题?','text',1,2,'2024-11-05 22:05:00'),
|
|
|
('audio_message.mp3',NULL,'audio',3,2,'2024-11-05 23:00:00');
|
|
|
|
|
|
-- 插入 reports_posts
|
|
|
INSERT INTO `reports_posts` VALUES
|
|
|
(2,3,'违规内容','帖子包含不当内容','reviewed',3,'2024-11-06 01:00:00','2024-11-06 00:30:00','内容已审核,无违规'),
|
|
|
(3,1,'广告嫌疑','疑似推广产品','pending',NULL,NULL,'2024-11-06 02:00:00',NULL);
|
|
|
|
|
|
-- 插入 reports_users
|
|
|
INSERT INTO `reports_users` VALUES
|
|
|
(2,3,'虚假信息','发布不实医疗信息','pending',NULL,NULL,NULL,NULL,'2024-11-06 00:00:00');
|
|
|
|
|
|
-- 插入 tweets(这里只插入前几条作为示例)
|
|
|
INSERT INTO `tweets` VALUES
|
|
|
(7,'权威发布','http://www.xinhuanet.com/health/spq/index.html','减重不再难...','[\"健康控糖\", \"健康运动\"]',0,'2025-12-09 05:15:34',4),
|
|
|
(8,'权威发布','http://www.xinhuanet.com/health/qwfb/index.html','国家卫生健康委发布新版三级医院评审标准...','[\"健康饮食\"]',8,'2025-12-09 05:15:35',4);
|
|
|
|
|
|
-- 重新启用外键检查
|
|
|
SET FOREIGN_KEY_CHECKS = 1;
|
|
|
|
|
|
-- 显示成功消息
|
|
|
SELECT '数据库 glucowisebase 创建并初始化成功!' AS Message;
|
|
|
|
|
|
-- 用户活动记录表
|
|
|
CREATE TABLE IF NOT EXISTS user_activity (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
user_id BIGINT NOT NULL COMMENT '用户ID',
|
|
|
activity_date DATE NOT NULL COMMENT '活动日期',
|
|
|
login_count INT DEFAULT 1 COMMENT '当日登录次数',
|
|
|
first_login_time DATETIME COMMENT '首次登录时间',
|
|
|
last_login_time DATETIME COMMENT '最后登录时间',
|
|
|
is_active BOOLEAN DEFAULT TRUE COMMENT '是否活跃',
|
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
|
-- 索引
|
|
|
UNIQUE KEY uk_user_date (user_id, activity_date),
|
|
|
INDEX idx_activity_date (activity_date),
|
|
|
INDEX idx_user_id (user_id),
|
|
|
INDEX idx_is_active (is_active),
|
|
|
|
|
|
-- 外键约束
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户活动记录表';
|
|
|
|
|
|
-- 每日活跃用户统计表(预聚合数据,提高查询性能)
|
|
|
CREATE TABLE IF NOT EXISTS daily_active_stats (
|
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
stat_date DATE NOT NULL COMMENT '统计日期',
|
|
|
active_user_count INT DEFAULT 0 COMMENT '活跃用户数',
|
|
|
new_user_count INT DEFAULT 0 COMMENT '新用户数',
|
|
|
total_login_count INT DEFAULT 0 COMMENT '总登录次数',
|
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
|
-- 索引
|
|
|
UNIQUE KEY uk_stat_date (stat_date),
|
|
|
INDEX idx_stat_date (stat_date)
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='每日活跃用户统计表';
|
|
|
|
|
|
-- 插入一些示例数据(最近30天)
|
|
|
INSERT INTO daily_active_stats (stat_date, active_user_count, new_user_count, total_login_count) VALUES
|
|
|
('2024-11-12', 120, 5, 180),
|
|
|
('2024-11-13', 135, 8, 210),
|
|
|
('2024-11-14', 128, 3, 195),
|
|
|
('2024-11-15', 142, 12, 225),
|
|
|
('2024-11-16', 156, 6, 240),
|
|
|
('2024-11-17', 148, 4, 220),
|
|
|
('2024-11-18', 132, 7, 200),
|
|
|
('2024-11-19', 145, 9, 215),
|
|
|
('2024-11-20', 158, 11, 245),
|
|
|
('2024-11-21', 162, 5, 250),
|
|
|
('2024-11-22', 155, 8, 235),
|
|
|
('2024-11-23', 149, 6, 225),
|
|
|
('2024-11-24', 138, 4, 205),
|
|
|
('2024-11-25', 125, 3, 185),
|
|
|
('2024-11-26', 140, 7, 210),
|
|
|
('2024-11-27', 152, 10, 230),
|
|
|
('2024-11-28', 168, 12, 260),
|
|
|
('2024-11-29', 175, 8, 270),
|
|
|
('2024-11-30', 182, 15, 285),
|
|
|
('2024-12-01', 178, 6, 275),
|
|
|
('2024-12-02', 165, 9, 255),
|
|
|
('2024-12-03', 172, 11, 265),
|
|
|
('2024-12-04', 185, 13, 290),
|
|
|
('2024-12-05', 192, 7, 300),
|
|
|
('2024-12-06', 188, 10, 295),
|
|
|
('2024-12-07', 195, 14, 310),
|
|
|
('2024-12-08', 201, 8, 320),
|
|
|
('2024-12-09', 198, 12, 315),
|
|
|
('2024-12-10', 205, 9, 325),
|
|
|
('2024-12-11', 210, 11, 335);
|
|
|
|
|
|
-- 禁用外键检查(如果有外键依赖)
|
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
|
|
-- 1. 备份当前自增值
|
|
|
SELECT MAX(id) INTO @max_id FROM users;
|
|
|
|
|
|
-- 2. 删除主键并修改为自增
|
|
|
ALTER TABLE users
|
|
|
DROP PRIMARY KEY,
|
|
|
MODIFY COLUMN id BIGINT NOT NULL AUTO_INCREMENT FIRST,
|
|
|
ADD PRIMARY KEY (id);
|
|
|
|
|
|
-- 3. 设置自增起始值为当前最大值+1
|
|
|
SET @new_start = IFNULL(@max_id, 0) + 1;
|
|
|
SET @sql = CONCAT('ALTER TABLE users AUTO_INCREMENT = ', @new_start);
|
|
|
PREPARE stmt FROM @sql;
|
|
|
EXECUTE stmt;
|
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
|
|
-- 4. 添加其他索引(可选)
|
|
|
ALTER TABLE users
|
|
|
ADD UNIQUE INDEX idx_wx_id (wx_id),
|
|
|
ADD INDEX idx_status (status),
|
|
|
ADD INDEX idx_created_at (created_at);
|
|
|
|
|
|
-- 重新启用外键检查
|
|
|
SET FOREIGN_KEY_CHECKS = 1;
|