Explorar el Código

feat(database): 创建基础数据表结构

- 添加血糖数据表 t_blood_glucose_data
- 添加血压数据表 t_blood_pressure_data
- 添加心率数据表 t_heart_rate_data
- 添加体格数据表 t_physical_data
- 添加用户信息表 t_user_info
- 添加用户认证表 t_user_token
- 所有表均使用 InnoDB 引擎和 utf8mb4 字符集
- 为各表添加必要的索引和外键约束
- 添加乐观锁版本号字段支持并发控制
- 添加创建时间和更新时间字段
mcbaiyun hace 2 meses
padre
commit
367ad9029a

+ 12 - 0
docs/DataBase/t_blood_glucose_data.txt

@@ -0,0 +1,12 @@
+CREATE TABLE `t_blood_glucose_data` (
+  `id` BIGINT NOT NULL COMMENT '主键ID',
+  `user_id` BIGINT NOT NULL COMMENT '用户ID',
+  `measure_time` DATETIME NOT NULL COMMENT '测量时间',
+  `type` VARCHAR(50) NOT NULL COMMENT '血糖测量类型',
+  `value` DECIMAL(5,2) NOT NULL COMMENT '血糖值',
+  `version` INT DEFAULT 0 COMMENT '乐观锁版本号',
+  PRIMARY KEY (`id`),
+  KEY `idx_bg_user_measure_time` (`user_id`, `measure_time`),
+  KEY `idx_bg_user_id` (`user_id`),
+  KEY `idx_bg_type` (`type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='血糖数据表';

+ 15 - 0
docs/DataBase/t_blood_pressure_data.txt

@@ -0,0 +1,15 @@
+CREATE TABLE `t_blood_pressure_data` (
+  `id` BIGINT NOT NULL COMMENT '主键ID',
+  `user_id` BIGINT NOT NULL COMMENT '用户ID',
+  `systolic_pressure` INT COMMENT '收缩压(mmHg)',
+  `diastolic_pressure` INT COMMENT '舒张压(mmHg)',
+  `measure_time` DATETIME NOT NULL COMMENT '测量时间',
+  `create_user` BIGINT COMMENT '创建者ID',
+  `create_time` DATETIME COMMENT '创建时间',
+  `update_user` BIGINT COMMENT '更新者ID',
+  `update_time` DATETIME COMMENT '更新时间',
+  `version` INT DEFAULT 0 COMMENT '乐观锁版本号',
+  PRIMARY KEY (`id`),
+  KEY `idx_bp_user_measure_time` (`user_id`, `measure_time`),
+  KEY `idx_bp_user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='血压数据表';

+ 14 - 0
docs/DataBase/t_heart_rate_data.txt

@@ -0,0 +1,14 @@
+CREATE TABLE `t_heart_rate_data` (
+  `id` BIGINT NOT NULL COMMENT '主键ID',
+  `user_id` BIGINT NOT NULL COMMENT '用户ID',
+  `heart_rate` INT COMMENT '心率(次/分钟)',
+  `measure_time` DATETIME NOT NULL COMMENT '测量时间',
+  `create_user` BIGINT COMMENT '创建者ID',
+  `create_time` DATETIME COMMENT '创建时间',
+  `update_user` BIGINT COMMENT '更新者ID',
+  `update_time` DATETIME COMMENT '更新时间',
+  `version` INT DEFAULT 0 COMMENT '乐观锁版本号',
+  PRIMARY KEY (`id`),
+  KEY `idx_hr_user_measure_time` (`user_id`, `measure_time`),
+  KEY `idx_hr_user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='心率数据表';

+ 15 - 0
docs/DataBase/t_physical_data.txt

@@ -0,0 +1,15 @@
+CREATE TABLE `t_physical_data` (
+  `id` BIGINT NOT NULL COMMENT '主键ID',
+  `user_id` BIGINT NOT NULL COMMENT '用户ID',
+  `height` DECIMAL(5,2) COMMENT '身高(cm)',
+  `weight` DECIMAL(5,2) COMMENT '体重(kg)',
+  `measure_time` DATETIME NOT NULL COMMENT '测量时间',
+  `create_user` BIGINT COMMENT '创建者ID',
+  `create_time` DATETIME COMMENT '创建时间',
+  `update_user` BIGINT COMMENT '更新者ID',
+  `update_time` DATETIME COMMENT '更新时间',
+  `version` INT DEFAULT 0 COMMENT '乐观锁版本号',
+  PRIMARY KEY (`id`),
+  KEY `idx_physical_user_measure_time` (`user_id`, `measure_time`),
+  KEY `idx_physical_user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='体格数据表';

+ 23 - 0
docs/DataBase/t_user_info.txt

@@ -0,0 +1,23 @@
+CREATE TABLE `t_user_info` (
+  `id` bigint(20) NOT NULL COMMENT '主键ID',
+  `version` int(11) DEFAULT '0' COMMENT '乐观锁版本',
+  `create_user` bigint(20) DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `update_user` bigint(20) DEFAULT NULL COMMENT '更新者',
+  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+  `remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
+  `username` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户名(可选)',
+  `password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码(可选)',
+  `role` tinyint(3) NOT NULL COMMENT '角色(枚举 PermissionGroup)',
+  `wx_openid` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '微信ID(可选)',
+  `avatar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '头像(可选)',
+  `nickname` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '昵称(可选)',
+  `sex` tinyint(20) DEFAULT NULL COMMENT '性别(可选) 1(男)或 2(女)',
+  `phone` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号(可选)',
+  `age` int(11) DEFAULT NULL COMMENT '年龄(可选)',
+  `address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '地址(可选)',
+  PRIMARY KEY (`id`),
+  KEY `idx_username` (`username`),
+  KEY `idx_phone` (`phone`),
+  KEY `idx_wx_openid` (`wx_openid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户信息表';

+ 16 - 0
docs/DataBase/t_user_token.txt

@@ -0,0 +1,16 @@
+CREATE TABLE `t_user_token` (
+  `id` bigint(20) NOT NULL COMMENT '主键ID',
+  `version` int(11) DEFAULT '0' COMMENT '乐观锁版本',
+  `create_user` bigint(20) DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `update_user` bigint(20) DEFAULT NULL COMMENT '更新者',
+  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+  `remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
+  `user_id` bigint(20) NOT NULL COMMENT '用户ID',
+  `token` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Token(UUID 或自定义)',
+  `expire_time` datetime NOT NULL COMMENT '过期时间',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `uk_user_id` (`user_id`),
+  KEY `idx_token` (`token`),
+  CONSTRAINT `fk_user_token_user` FOREIGN KEY (`user_id`) REFERENCES `t_user_info` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户认证表';