-- 创建用户饮食记录表 -- 该表用于存储用户通过AI视觉识别或手动输入的饮食记录 -- 包含详细的营养成分信息,支持营养分析和健康建议功能 CREATE TABLE IF NOT EXISTS `t_user_diet_history` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_id` varchar(255) NOT NULL COMMENT '用户ID', `meal_type` enum('breakfast','lunch','dinner','snack','other') NOT NULL DEFAULT 'other' COMMENT '餐次类型', `food_name` varchar(100) NOT NULL COMMENT '食物名称', `food_description` varchar(500) DEFAULT NULL COMMENT '食物描述(详细信息)', `weight_grams` float DEFAULT NULL COMMENT '食物重量(克)', `portion_description` varchar(50) DEFAULT NULL COMMENT '份量描述(如:1碗、2片、100g等)', `estimated_calories` float DEFAULT NULL COMMENT '估算总热量(卡路里)', `protein_grams` float DEFAULT NULL COMMENT '蛋白质含量(克)', `carbohydrate_grams` float DEFAULT NULL COMMENT '碳水化合物含量(克)', `fat_grams` float DEFAULT NULL COMMENT '脂肪含量(克)', `fiber_grams` float DEFAULT NULL COMMENT '膳食纤维含量(克)', `sugar_grams` float DEFAULT NULL COMMENT '糖分含量(克)', `sodium_mg` float DEFAULT NULL COMMENT '钠含量(毫克)', `additional_nutrition` json DEFAULT NULL COMMENT '其他营养信息(维生素、矿物质等)', `source` enum('manual','vision','other') NOT NULL DEFAULT 'manual' COMMENT '记录来源', `meal_time` datetime DEFAULT NULL COMMENT '用餐时间', `image_url` varchar(500) DEFAULT NULL COMMENT '食物图片URL', `ai_analysis_result` json DEFAULT NULL COMMENT 'AI识别原始结果', `notes` text DEFAULT NULL COMMENT '用户备注', `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否已删除', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_user_id` (`user_id`), KEY `idx_meal_type` (`meal_type`), KEY `idx_created_at` (`created_at`), KEY `idx_user_created` (`user_id`, `created_at`), KEY `idx_deleted` (`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户饮食记录表'; -- 创建索引以优化查询性能 CREATE INDEX `idx_user_meal_time` ON `t_user_diet_history` (`user_id`, `meal_time`); CREATE INDEX `idx_source` ON `t_user_diet_history` (`source`); -- 示例数据(可选) -- INSERT INTO `t_user_diet_history` (`user_id`, `meal_type`, `food_name`, `food_description`, `portion_description`, `estimated_calories`, `protein_grams`, `carbohydrate_grams`, `fat_grams`, `fiber_grams`, `source`, `meal_time`, `notes`) VALUES -- ('test_user_001', 'breakfast', '燕麦粥', '燕麦片加牛奶和香蕉', '1碗', 320, 12.5, 45.2, 8.3, 6.8, 'manual', '2024-01-15 08:00:00', '早餐很有营养'), -- ('test_user_001', 'lunch', '鸡胸肉沙拉', '烤鸡胸肉配蔬菜沙拉', '1份', 280, 35.0, 15.5, 8.0, 5.2, 'vision', '2024-01-15 12:30:00', 'AI识别添加'), -- ('test_user_001', 'dinner', '三文鱼配糙米', '煎三文鱼配蒸糙米和西兰花', '1份', 450, 28.5, 52.0, 18.2, 4.5, 'manual', '2024-01-15 19:00:00', '晚餐丰富');