database_schema.sql 2.5 KB
-- Nano Banana App Database Schema
-- 包含用户登录日志表和使用日志表
--
-- 表说明:
-- 1. nano_banana_user_log: 记录用户登录日志(IP地址、设备名称、登录时间)
-- 2. nano_banana_user_use_log: 记录用户生图操作日志(prompt、结果、状态、错误信息)

-- 创建用户登录日志表
CREATE TABLE `nano_banana_user_log` (
  `user_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户名',
  `local_ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '局域网IP地址',
  `public_ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公网IP地址(可为空)',
  `device_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备名称',
  `login_time` datetime COLLATE utf8mb4_unicode_ci DEFAULT CURRENT_TIMESTAMP COMMENT '登录时间',
  INDEX `idx_user_name` (`user_name`),
  INDEX `idx_login_time` (`login_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户登录日志表';

-- 数据迁移脚本(如果表已存在)
ALTER TABLE `nano_banana_user_log`
ADD COLUMN `local_ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '局域网IP地址' AFTER `user_name`,
ADD COLUMN `public_ip` varchar(45) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '公网IP地址' AFTER `local_ip`,
MODIFY COLUMN `device_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备名称',
ADD INDEX `idx_user_name` (`user_name`),
ADD INDEX `idx_login_time` (`login_time`);

-- 创建用户使用日志表
CREATE TABLE `nano_banana_user_use_log` (
  `id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
  `record_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
  `user_name` VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户名',
  `device_name` VARCHAR(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '设备名称',
  `prompt` TEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户请求的 Prompt',
  `result_path` VARCHAR(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '返回数据地址(成功时为图片路径)',
  `status` ENUM('success', 'failure') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作状态',
  `error_message` TEXT COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '失败时的错误信息',
  INDEX `idx_user_name` (`user_name`),
  INDEX `idx_record_time` (`record_time`),
  INDEX `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户使用日志表';