纳入范围: - backend/ Spring Boot 多模块后端(iot-common/device/rule/data/alarm/auth) - frontend/admin/ Vue3 + Element Plus 管理后台 - Android/ 涂鸦原生 APP (com.xhai.iot) - backend/sql/ Flyway 风格迁移脚本(V2~V21) - docs/ 对接文档与设计文档 排除范围: - 构建产物: node_modules/ target/ build/ dist/ .gradle/ - 签名密钥: *.jks *.keystore (严禁入库) - 本机配置: Android/local.properties - 运行日志: logs/ *.log - AI 协作本地数据 .codebuddy/ 与第三方 demo tuya-demo/ .gitattributes 统一以 LF 存储, Windows 批处理保留 CRLF
56 lines
3.3 KiB
SQL
56 lines
3.3 KiB
SQL
-- ================================================
|
|
-- 家庭系统 - 数据库迁移脚本 V4
|
|
-- 用途: 支持用户创建多个家庭(我的家/办公室等),并可分享给其他用户
|
|
-- ================================================
|
|
|
|
SET NAMES utf8mb4;
|
|
|
|
-- ============================================================
|
|
-- 1. home 表(家庭)
|
|
-- ============================================================
|
|
CREATE TABLE IF NOT EXISTS `home` (
|
|
`id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)',
|
|
`name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '家庭名称',
|
|
`cover_image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '封面图URL',
|
|
`address` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '地址',
|
|
`owner_id` BIGINT NOT NULL DEFAULT 0 COMMENT '创建者ID(member.id)',
|
|
`share_code` VARCHAR(12) NOT NULL DEFAULT '' COMMENT '分享邀请码',
|
|
`member_count` INT NOT NULL DEFAULT 0 COMMENT '成员数量',
|
|
`device_count` INT NOT NULL DEFAULT 0 COMMENT '设备数量',
|
|
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '逻辑删除(0正常 1删除)',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_home_share_code` (`share_code`),
|
|
KEY `idx_home_owner_id` (`owner_id`),
|
|
KEY `idx_home_deleted` (`deleted`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='家庭表';
|
|
|
|
-- ============================================================
|
|
-- 2. home_member 表(家庭成员关系)
|
|
-- ============================================================
|
|
CREATE TABLE IF NOT EXISTS `home_member` (
|
|
`id` BIGINT NOT NULL COMMENT '主键ID(雪花算法)',
|
|
`home_id` BIGINT NOT NULL DEFAULT 0 COMMENT '家庭ID(home.id)',
|
|
`member_id` BIGINT NOT NULL DEFAULT 0 COMMENT '成员ID(member.id)',
|
|
`role` VARCHAR(20) NOT NULL DEFAULT 'member' COMMENT '角色(owner/admin/member)',
|
|
`alias_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '在该家庭的昵称',
|
|
`invited_by` BIGINT NOT NULL DEFAULT 0 COMMENT '邀请人ID(member.id)',
|
|
`status` VARCHAR(20) NOT NULL DEFAULT 'accepted' COMMENT '状态(pending/accepted/removed)',
|
|
`join_time` DATETIME NULL COMMENT '加入时间',
|
|
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_home_member` (`home_id`, `member_id`),
|
|
KEY `idx_hm_member_id` (`member_id`),
|
|
KEY `idx_hm_status` (`status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='家庭成员关系表';
|
|
|
|
-- 为新注册的测试用户自动创建一个默认"我的家"
|
|
INSERT IGNORE INTO `home` (`id`, `name`, `owner_id`, `share_code`, `member_count`, `device_count`, `create_time`, `update_time`, `deleted`)
|
|
VALUES (1, '我的家', 1, 'DEFAULTH', 1, 0, NOW(), NOW(), 0);
|
|
|
|
INSERT IGNORE INTO `home_member` (`id`, `home_id`, `member_id`, `role`, `alias_name`, `invited_by`, `status`, `join_time`, `create_time`)
|
|
VALUES (1, 1, 1, 'owner', 'testuser', 0, 'accepted', NOW(), NOW());
|
|
|
|
SELECT 'V4 migration completed: home + home_member tables created.' AS message;
|