diff --git a/backend/sql/README.md b/backend/sql/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a16df0a81acd6165df2d33b271bd60d42c60e9bd --- /dev/null +++ b/backend/sql/README.md @@ -0,0 +1,35 @@ +# MySQL 初始化脚本 + +## 文件说明 + +| 文件 | 用途 | +|------|------| +| `schema.sql` | 创建 `eshop` 数据库及分类、商品表 | +| `data.sql` | 写入 6 个分类、36 个商品,重复执行时更新同 ID 数据 | +| `verify_data.sql` | 检查分类/商品数量、分类分布、孤儿商品和关键边界数据 | + +## 执行顺序 + +```bash +mysql -uroot -p < backend/sql/schema.sql +mysql -uroot -p < backend/sql/data.sql +mysql -uroot -p < backend/sql/verify_data.sql +``` + +若已经进入 MySQL 客户端,可依次执行: + +```sql +SOURCE backend/sql/schema.sql; +SOURCE backend/sql/data.sql; +SOURCE backend/sql/verify_data.sql; +``` + +## 验收口径 + +- 分类总数:6,要求不少于 3。 +- 商品总数:36,要求不少于 30。 +- `product.id=30`:库存为 1,用于库存边界测试。 +- `product.id=31`:状态为 0,用于下架商品测试。 +- `product.id=1/2/22` 与测试工作簿中的无线蓝牙耳机、机械键盘、咖啡豆保持一致。 + +当前脚本只覆盖商品目录模块。用户、购物车、订单、支付等表仍由相应模块负责人接入最终数据库设计。 diff --git a/backend/sql/data.sql b/backend/sql/data.sql new file mode 100644 index 0000000000000000000000000000000000000000..fef84f781cde9d2c89db8d90d28c3a55dcc3b502 --- /dev/null +++ b/backend/sql/data.sql @@ -0,0 +1,103 @@ +-- E-Shop 演示数据(MySQL 8.0+) +-- 数据规模:6 个分类、36 个商品。 +-- 关键演示约定: +-- product.id=1 无线蓝牙耳机 +-- product.id=2 机械键盘 +-- product.id=22 咖啡豆 +-- product.id=30 低库存商品(stock=1) +-- product.id=31 下架商品(status=0) + +USE eshop; +SET NAMES utf8mb4; + +START TRANSACTION; + +INSERT INTO category (id, name, sort, status) +VALUES + (1, '数码电子', 10, 1), + (2, '生活百货', 20, 1), + (3, '食品饮料', 30, 1), + (4, '服饰鞋包', 40, 1), + (5, '运动户外', 50, 1), + (6, '图书文创', 60, 1) +ON DUPLICATE KEY UPDATE + name = VALUES(name), + sort = VALUES(sort), + status = VALUES(status); + +INSERT INTO product ( + id, product_code, category_id, name, subtitle, description, + price, original_price, stock, sales, image_url, status, sort +) +VALUES + (1, 'P0001', 1, '无线蓝牙耳机', '主动降噪,续航 30 小时', '适合通勤和运动的入耳式蓝牙耳机,支持双设备连接。', 299.00, 399.00, 120, 286, '/images/products/P0001.jpg', 1, 10), + (2, 'P0002', 1, '机械键盘', '87 键热插拔,白色背光', '紧凑布局机械键盘,支持多系统切换与键帽更换。', 399.00, 499.00, 80, 168, '/images/products/P0002.jpg', 1, 20), + (3, 'P0003', 1, '智能运动手表', '心率监测,5ATM 防水', '支持运动记录、睡眠监测和消息提醒。', 599.00, 699.00, 65, 132, '/images/products/P0003.jpg', 1, 30), + (4, 'P0004', 1, '20W 快充移动电源', '10000mAh,双向快充', '轻量便携移动电源,带电量显示。', 129.00, 159.00, 200, 521, '/images/products/P0004.jpg', 1, 40), + (5, 'P0005', 1, '27 英寸 4K 显示器', 'IPS 面板,Type-C 接口', '适合设计、办公和影音娱乐的高清显示器。', 1899.00, 2199.00, 35, 76, '/images/products/P0005.jpg', 1, 50), + (6, 'P0006', 1, '静音无线鼠标', '双模连接,可调 DPI', '人体工学无线鼠标,适合办公和学习。', 159.00, 199.00, 150, 408, '/images/products/P0006.jpg', 1, 60), + + (7, 'P0007', 2, '手持无线吸尘器', '轻量机身,强劲吸力', '适合家庭和汽车清洁,配多种吸头。', 899.00, 1099.00, 42, 95, '/images/products/P0007.jpg', 1, 70), + (8, 'P0008', 2, '护眼 LED 台灯', '无级调光,定时休息提醒', '学习办公两用台灯,光线柔和无可视频闪。', 99.00, 129.00, 180, 637, '/images/products/P0008.jpg', 1, 80), + (9, 'P0009', 2, '纯棉毛巾三件套', '柔软吸水,家庭装', 'A 类纯棉材质,适合日常洗脸和沐浴。', 39.90, 59.90, 320, 1024, '/images/products/P0009.jpg', 1, 90), + (10, 'P0010', 2, '真空保温杯', '316 不锈钢,500ml', '长效保温保冷,杯盖密封防漏。', 79.00, 99.00, 160, 715, '/images/products/P0010.jpg', 1, 100), + (11, 'P0011', 2, '透明收纳箱', '带滑轮,55L 大容量', '可叠放家用收纳箱,适合衣物和玩具整理。', 49.90, 69.90, 140, 386, '/images/products/P0011.jpg', 1, 110), + (12, 'P0012', 2, '浓缩洗衣液', '低泡易漂,2kg', '适用于机洗和手洗,清新自然香型。', 59.90, 79.90, 210, 829, '/images/products/P0012.jpg', 1, 120), + + (13, 'P0013', 3, '每日坚果礼盒', '7 种果仁果干,30 袋装', '独立小包装,方便携带和控制每日摄入。', 129.00, 159.00, 100, 442, '/images/products/P0013.jpg', 1, 130), + (14, 'P0014', 3, '纯牛奶整箱', '250ml×24 盒', '高温灭菌纯牛奶,适合早餐搭配。', 69.90, 79.90, 130, 965, '/images/products/P0014.jpg', 1, 140), + (15, 'P0015', 3, '茉莉花茶', '清香型茶叶,250g', '花香清雅,适合日常冲泡。', 88.00, 108.00, 75, 216, '/images/products/P0015.jpg', 1, 150), + (16, 'P0016', 3, '黄油曲奇饼干', '铁盒装,600g', '口感酥脆,适合作为下午茶点心。', 59.00, 79.00, 95, 354, '/images/products/P0016.jpg', 1, 160), + (17, 'P0017', 3, '青柠气泡水', '0 糖 0 脂,12 罐', '清爽气泡饮料,冷藏后口感更佳。', 45.90, 59.90, 240, 1108, '/images/products/P0017.jpg', 1, 170), + (18, 'P0018', 3, '即食燕麦片', '原味无添加,1kg', '热水或牛奶冲泡即可食用。', 36.90, 46.90, 170, 602, '/images/products/P0018.jpg', 1, 180), + + (19, 'P0019', 4, '纯棉基础款 T 恤', '柔软透气,多色可选', '简约圆领版型,适合日常穿搭。', 69.00, 99.00, 190, 853, '/images/products/P0019.jpg', 1, 190), + (20, 'P0020', 4, '直筒休闲牛仔裤', '舒适弹力,经典蓝色', '中腰直筒剪裁,通勤休闲均适用。', 159.00, 199.00, 105, 314, '/images/products/P0020.jpg', 1, 200), + (21, 'P0021', 4, '商务通勤双肩包', '可容纳 15.6 英寸电脑', '分区收纳、防泼水面料,适合通勤出差。', 189.00, 239.00, 88, 275, '/images/products/P0021.jpg', 1, 210), + (22, 'P0022', 3, '精品咖啡豆', '中度烘焙,500g', '坚果与焦糖风味,适合手冲和意式咖啡机。', 98.00, 118.00, 90, 437, '/images/products/P0022.jpg', 1, 220), + (23, 'P0023', 4, '轻量缓震跑鞋', '透气网面,耐磨鞋底', '适合慢跑、健走和日常通勤。', 329.00, 399.00, 72, 198, '/images/products/P0023.jpg', 1, 230), + (24, 'P0024', 4, '轻薄防晒外套', 'UPF50+,便携可收纳', '适合通勤和户外活动的轻量防晒衣。', 139.00, 179.00, 110, 246, '/images/products/P0024.jpg', 1, 240), + + (25, 'P0025', 5, '加厚防滑瑜伽垫', '双面防滑,厚度 8mm', '适合瑜伽、拉伸和居家训练。', 89.00, 119.00, 85, 337, '/images/products/P0025.jpg', 1, 250), + (26, 'P0026', 5, '智能计数跳绳', '电子计数,可调绳长', '记录次数和训练时长,适合室内外使用。', 49.00, 69.00, 145, 589, '/images/products/P0026.jpg', 1, 260), + (27, 'P0027', 5, '可调节哑铃套装', '单只 2.5-12.5kg', '旋钮快速调节重量,节省收纳空间。', 699.00, 799.00, 28, 84, '/images/products/P0027.jpg', 1, 270), + (28, 'P0028', 5, '户外露营灯', '三档亮度,Type-C 充电', '可悬挂便携营灯,支持应急照明。', 119.00, 149.00, 96, 172, '/images/products/P0028.jpg', 1, 280), + (29, 'P0029', 5, '运动水壶', '食品级材质,750ml', '一键开盖、防漏设计,适合健身骑行。', 39.00, 49.00, 220, 731, '/images/products/P0029.jpg', 1, 290), + (30, 'P0030', 5, '碳纤维登山杖', '低库存边界演示专用', '轻量可伸缩登山杖;库存仅 1 件,用于验证库存边界。', 159.00, 199.00, 1, 51, '/images/products/P0030.jpg', 1, 300), + + (31, 'P0031', 6, '旧版 Java 入门教程', '下架状态演示专用', '旧版技术图书,仅用于验证下架商品前后台可见性。', 49.00, 69.00, 20, 126, '/images/products/P0031.jpg', 0, 310), + (32, 'P0032', 6, '软件测试项目实战', '从测试计划到自动化实践', '覆盖需求分析、用例设计、缺陷管理和测试报告。', 79.00, 99.00, 60, 143, '/images/products/P0032.jpg', 1, 320), + (33, 'P0033', 6, 'MySQL 性能优化指南', '索引、事务与 SQL 调优', '面向开发者的数据库性能分析与优化案例。', 89.00, 109.00, 55, 118, '/images/products/P0033.jpg', 1, 330), + (34, 'P0034', 6, 'Git 团队协作手册', '分支策略与代码评审', '介绍常见 Git 工作流、冲突处理和提交规范。', 59.00, 79.00, 70, 207, '/images/products/P0034.jpg', 1, 340), + (35, 'P0035', 6, '数据结构学习笔记', '图解算法与常见题型', '使用图示和示例讲解基础数据结构与算法。', 68.00, 88.00, 65, 164, '/images/products/P0035.jpg', 1, 350), + (36, 'P0036', 6, '电商原型设计手账', '页面流程与交互草图模板', '包含首页、详情、购物车、订单和后台页面草图模板。', 45.00, 59.00, 90, 233, '/images/products/P0036.jpg', 1, 360) +ON DUPLICATE KEY UPDATE + product_code = VALUES(product_code), + category_id = VALUES(category_id), + name = VALUES(name), + subtitle = VALUES(subtitle), + description = VALUES(description), + price = VALUES(price), + original_price = VALUES(original_price), + stock = VALUES(stock), + sales = VALUES(sales), + image_url = VALUES(image_url), + status = VALUES(status), + sort = VALUES(sort); + +COMMIT; + +-- 执行完成后直接显示验收结果。 +SELECT + 'category_count' AS check_item, + COUNT(*) AS actual_value, + 3 AS required_value, + IF(COUNT(*) >= 3, 'PASS', 'FAIL') AS result +FROM category +UNION ALL +SELECT + 'product_count', + COUNT(*), + 30, + IF(COUNT(*) >= 30, 'PASS', 'FAIL') +FROM product; diff --git a/backend/sql/schema.sql b/backend/sql/schema.sql new file mode 100644 index 0000000000000000000000000000000000000000..d647df397bb3e3030d14449e5153b2b9877d3d8f --- /dev/null +++ b/backend/sql/schema.sql @@ -0,0 +1,52 @@ +-- E-Shop 商品目录初始化结构(MySQL 8.0+) +-- 作用范围:分类、商品。其余业务表由对应模块负责人继续补充。 + +CREATE DATABASE IF NOT EXISTS eshop + DEFAULT CHARACTER SET utf8mb4 + DEFAULT COLLATE utf8mb4_0900_ai_ci; + +USE eshop; + +CREATE TABLE IF NOT EXISTS category ( + id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '分类主键', + name VARCHAR(64) NOT NULL COMMENT '分类名称', + sort INT NOT NULL DEFAULT 0 COMMENT '排序值,越小越靠前', + status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1启用,0禁用', + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (id), + UNIQUE KEY uk_category_name (name), + KEY idx_category_status_sort (status, sort) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci + COMMENT='商品分类表'; + +CREATE TABLE IF NOT EXISTS product ( + id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '商品主键', + product_code VARCHAR(32) NOT NULL COMMENT '商品编码', + category_id BIGINT UNSIGNED NOT NULL COMMENT '分类ID', + name VARCHAR(128) NOT NULL COMMENT '商品名称', + subtitle VARCHAR(255) DEFAULT NULL COMMENT '商品副标题', + description TEXT COMMENT '商品详情', + price DECIMAL(10, 2) NOT NULL COMMENT '销售价', + original_price DECIMAL(10, 2) DEFAULT NULL COMMENT '划线价', + stock INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '库存', + sales INT UNSIGNED NOT NULL DEFAULT 0 COMMENT '历史销量', + image_url VARCHAR(500) DEFAULT NULL COMMENT '主图地址', + status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1上架,0下架', + sort INT NOT NULL DEFAULT 0 COMMENT '排序值,越小越靠前', + created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (id), + UNIQUE KEY uk_product_code (product_code), + KEY idx_product_category_status (category_id, status), + KEY idx_product_status_sort (status, sort), + KEY idx_product_name (name), + CONSTRAINT fk_product_category + FOREIGN KEY (category_id) REFERENCES category (id) + ON UPDATE RESTRICT ON DELETE RESTRICT, + CONSTRAINT chk_product_price CHECK (price >= 0), + CONSTRAINT chk_product_original_price CHECK ( + original_price IS NULL OR original_price >= price + ) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci + COMMENT='商品表'; diff --git a/backend/sql/verify_data.sql b/backend/sql/verify_data.sql new file mode 100644 index 0000000000000000000000000000000000000000..ab182add89a50e3dec30807279bbc5a160922e9d --- /dev/null +++ b/backend/sql/verify_data.sql @@ -0,0 +1,43 @@ +-- E-Shop 分类与商品演示数据复查脚本 + +USE eshop; + +SELECT + '分类总数不少于 3' AS check_item, + COUNT(*) AS actual_value, + 3 AS required_value, + IF(COUNT(*) >= 3, 'PASS', 'FAIL') AS result +FROM category; + +SELECT + '商品总数不少于 30' AS check_item, + COUNT(*) AS actual_value, + 30 AS required_value, + IF(COUNT(*) >= 30, 'PASS', 'FAIL') AS result +FROM product; + +SELECT + c.id AS category_id, + c.name AS category_name, + COUNT(p.id) AS product_count +FROM category c +LEFT JOIN product p ON p.category_id = c.id +GROUP BY c.id, c.name +ORDER BY c.sort, c.id; + +SELECT + COUNT(*) AS orphan_product_count, + IF(COUNT(*) = 0, 'PASS', 'FAIL') AS result +FROM product p +LEFT JOIN category c ON c.id = p.category_id +WHERE c.id IS NULL; + +SELECT + id, + product_code, + name, + stock, + status +FROM product +WHERE id IN (1, 2, 22, 30, 31) +ORDER BY id; diff --git "a/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/E-Shop-\346\235\250\345\205\211\346\262\243-\347\254\2541-2\345\244\251\346\265\213\350\257\225\344\272\244\344\273\230\347\211\251.xlsx" "b/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/E-Shop-\346\235\250\345\205\211\346\262\243-\347\254\2541-2\345\244\251\346\265\213\350\257\225\344\272\244\344\273\230\347\211\251.xlsx" new file mode 100644 index 0000000000000000000000000000000000000000..2b24e3e9418da2e90fdb2c1cc4943dfe41315d86 Binary files /dev/null and "b/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/E-Shop-\346\235\250\345\205\211\346\262\243-\347\254\2541-2\345\244\251\346\265\213\350\257\225\344\272\244\344\273\230\347\211\251.xlsx" differ diff --git "a/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/\346\225\260\346\215\256\345\272\223\345\210\235\345\247\213\345\214\226\346\243\200\346\237\245\350\256\260\345\275\225.md" "b/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/\346\225\260\346\215\256\345\272\223\345\210\235\345\247\213\345\214\226\346\243\200\346\237\245\350\256\260\345\275\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..13a0f28dd1e972dc2beea5e22a86492d0bea2205 --- /dev/null +++ "b/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/\346\225\260\346\215\256\345\272\223\345\210\235\345\247\213\345\214\226\346\243\200\346\237\245\350\256\260\345\275\225.md" @@ -0,0 +1,63 @@ +# 数据库初始化检查记录 + +> 检查人:杨光沣(测试部署 / 质量负责人) +> 检查日期:2026-07-23 +> 复查日期:2026-07-24 +> 工作分支:`feature/test-deploy-log` +> 目标脚本:`backend/sql/schema.sql`、`backend/sql/data.sql`、`backend/sql/verify_data.sql` + +## 一、检查结论 + +**当前状态:商品目录初始化数据已通过静态检查,等待 MySQL 环境执行复核。** + +2026-07-24 已补充商品目录初始化结构、演示数据和复查脚本。静态核对结果为 6 个分类、36 个商品,满足“不少于 3 个分类、30 个商品”的验收要求;关键商品 ID 与演示数据清单保持一致,并包含低库存和下架边界数据。 + +本机未安装 MySQL 客户端,Docker Desktop 引擎也未启动,因此本次未伪造真实执行结果。用户、地址、购物车、订单、支付等业务表尚未由对应模块负责人提交,完整数据库初始化仍需后续集成复核。 + +## 二、已核对的设计要求 + +| 检查项 | 设计要求 | 当前结论 | +|--------|----------|----------| +| 数据库字符集 | 建议使用 `utf8mb4` | 商品目录脚本已使用 `utf8mb4` | +| 核心实体 | 用户、地址、分类、商品、购物车、订单、订单项、支付 | 分类、商品已提供;其余待模块负责人提交 | +| 用户名约束 | 用户名唯一 | 待脚本提供后复核 | +| 订单项快照 | 保存下单时商品名称和价格 | 待脚本提供后复核 | +| 初始化脚本路径 | `backend/sql/schema.sql` | 已提供商品目录结构 | +| 演示数据脚本路径 | `backend/sql/data.sql` | 已提供 | +| 演示数据数量 | 不少于 3 个分类、30 个商品 | 静态检查:6 个分类、36 个商品 | +| 边界数据 | 低库存、下架商品 | `product.id=30` 库存 1;`product.id=31` 已下架 | + +## 三、脚本到位后的检查清单 + +| 编号 | 检查内容 | 验收标准 | +|------|----------|----------| +| DB-CHK-001 | 建库字符集和排序规则 | 支持中文商品名、地址等数据 | +| DB-CHK-002 | 核心表和主键 | 核心实体完整,主键策略一致 | +| DB-CHK-003 | 唯一约束 | 用户名、订单号、支付流水等不可重复 | +| DB-CHK-004 | 外键与索引 | 关联关系正确,高频条件有索引 | +| DB-CHK-005 | 账号数据 | 管理员、买家可用;不提交明文密码 | +| DB-CHK-006 | 分类和商品数量 | 分类不少于 3 条、商品不少于 30 条 | +| DB-CHK-007 | 订单支付演示数据 | 至少包含待支付和已支付场景 | +| DB-CHK-008 | X02/C08 扩展结构 | 操作日志、回调去重和对账证据可落库 | + +## 四、复查 SQL 模板 + +```sql +SELECT COUNT(*) AS category_count FROM category; +SELECT COUNT(*) AS product_count FROM product; +SELECT category_id, COUNT(*) AS product_count +FROM product +GROUP BY category_id +ORDER BY category_id; +SELECT id, product_code, name, stock, status +FROM product +WHERE id IN (1, 2, 22, 30, 31) +ORDER BY id; +``` + +## 五、后续动作 + +1. 启动 MySQL 8.0+ 后按 `backend/sql/README.md` 的顺序执行三个脚本。 +2. 将 `verify_data.sql` 的真实查询结果、异常信息和修复提交号补入本记录。 +3. 用户、购物车、订单、支付等模块表到位后,继续核对唯一约束、订单项快照及 C08 支撑结构。 +4. 未完成数据库实跑前,只标记“静态检查通过”,不把完整初始化状态标记为“执行通过”。 diff --git "a/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/\347\254\2541-2\345\244\251\344\273\273\345\212\241\345\256\214\346\210\220\350\256\260\345\275\225.md" "b/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/\347\254\2541-2\345\244\251\344\273\273\345\212\241\345\256\214\346\210\220\350\256\260\345\275\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..91f967523ac51c90535984de13514114bfe58757 --- /dev/null +++ "b/docs/03-\346\265\213\350\257\225\346\226\207\346\241\243/\347\254\2541-2\345\244\251\344\273\273\345\212\241\345\256\214\346\210\220\350\256\260\345\275\225.md" @@ -0,0 +1,18 @@ +# 第 1–2 天任务完成记录 + +> 负责人:杨光沣 +> 工作分支:`feature/test-deploy-log` + +| 批次 | 任务 | 当前状态 | 证据 | +|------|------|----------|------| +| 第 1 天 | 完善测试计划基础信息、范围和负责人 | 已完成 | `docs/03-测试文档/测试计划.md` | +| 第 1 天 | 整理测试账号和演示数据清单 | 清单已完成,实际数据待准备 | `docs/03-测试文档/E-Shop-杨光沣-第1-2天测试交付物.xlsx` | +| 第 1 天 | 创建并推送工作分支 | 远端分支已存在;本地已建立同名跟踪分支 | `feature/test-deploy-log` 跟踪 `origin/feature/test-deploy-log` | +| 第 2 天 | 用户、商品模块测试用例不少于 20 条 | 已编写 24 条,尚未执行 | 工作簿“测试用例”“执行统计”工作表 | +| 第 2 天 | 检查 MySQL 初始化脚本 | 检查清单已完成,实检阻塞 | 当前分支缺少目标 SQL,详见数据库检查记录 | + +## 当前验收结论 + +- 第 1 天文档与分支准备已完成;可登录账号和完整演示数据仍需后续补齐。 +- 第 2 天用例编写数量达标;数据库实检必须等初始化脚本提交后完成。 +- 不把尚未执行的测试用例或尚未提供的 SQL 标记为“通过”。 diff --git "a/reports/daily/\346\235\250\345\205\211\346\262\243/20260722-\346\235\250\345\205\211\346\262\243.md" "b/reports/daily/\346\235\250\345\205\211\346\262\243/20260722-\346\235\250\345\205\211\346\262\243.md" new file mode 100644 index 0000000000000000000000000000000000000000..2923ef1c7435b4be1f2047a94271da93da4f18ed --- /dev/null +++ "b/reports/daily/\346\235\250\345\205\211\346\262\243/20260722-\346\235\250\345\205\211\346\262\243.md" @@ -0,0 +1,24 @@ +# 日报 - 杨光沣 - 2026-07-22 + +## 今日完成 + +1. 在 `feature/test-deploy-log` 分支完善测试计划,补充测试目标、范围、负责人、策略、环境、账号、演示数据和风险。 +2. 整理测试账号与演示数据清单,明确管理员、买家、禁用账号、商品、订单支付、选做模块和 C08 所需数据及准备状态。 +3. 核对仓库分支,创建本地 `feature/test-deploy-log` 并跟踪 `origin/feature/test-deploy-log`,后续测试和部署材料均在该分支提交。 + +## 遇到的问题 + +| 问题描述 | 解决状态 | 解决方式/求助对象 | +|----------|----------|-------------------| +| 当前仓库只有项目文档,前后端代码和初始化 SQL 尚未提交 | 未解决 | 等待对应模块负责人提交代码与脚本 | +| 演示账号尚无可验证的登录密码和密码哈希 | 未解决 | 请后端负责人提供本地演示账号方案 | +| 订单支付、收藏、浏览历史、操作日志及 C08 数据尚未准备 | 未解决 | 按后续开发进度补充可重复导入数据 | + +## 明日计划 + +1. 完成用户、商品模块不少于 20 条测试用例。 +2. 检查 MySQL 初始化脚本;如脚本仍缺失,记录阻塞项和复查清单。 + +## 今日工时 + +约 4 小时 diff --git "a/reports/daily/\346\235\250\345\205\211\346\262\243/20260723-\346\235\250\345\205\211\346\262\243.md" "b/reports/daily/\346\235\250\345\205\211\346\262\243/20260723-\346\235\250\345\205\211\346\262\243.md" new file mode 100644 index 0000000000000000000000000000000000000000..92d0d7a0e539eab2be951ff645bf1961d5040610 --- /dev/null +++ "b/reports/daily/\346\235\250\345\205\211\346\262\243/20260723-\346\235\250\345\205\211\346\262\243.md" @@ -0,0 +1,24 @@ +# 日报 - 杨光沣 - 2026-07-23 + +## 今日完成 + +1. 在 `feature/test-deploy-log` 分支整理用户、地址、商品和后台商品共 24 条测试用例,覆盖正常、异常、边界、接口及权限场景。 +2. 完成测试用例模板、演示账号、演示数据、数据库检查和执行统计工作表;24 条用例均保持“未执行”,等待环境可用后回填真实结果。 +3. 建立 MySQL 初始化脚本检查记录,确认目标路径和验收项;当前因 `backend/sql/schema.sql`、`backend/sql/data.sql` 缺失而标记为阻塞。 + +## 遇到的问题 + +| 问题描述 | 解决状态 | 解决方式/求助对象 | +|----------|----------|-------------------| +| 初始化 SQL 未提交,无法核对建表、约束和演示数据 | 未解决 | 等待后端或数据库负责人提交脚本后执行复查 SQL | +| 接口设计文档仅完成部分接口,工作簿中的接口编号需要后续统一映射 | 未解决 | 与各模块负责人对齐最终接口清单 | +| 测试环境和演示账号不可用,24 条用例尚未执行 | 未解决 | 环境就绪后执行并登记实际结果、缺陷编号 | + +## 明日计划 + +1. 补充购物车、订单、支付和后台管理测试用例,使总数达到 40 条以上。 +2. 接口和数据库环境可用后,开始执行用户、商品模块用例。 + +## 今日工时 + +约 4 小时 diff --git "a/reports/daily/\346\235\250\345\205\211\346\262\243/20260724-\346\235\250\345\205\211\346\262\243.md" "b/reports/daily/\346\235\250\345\205\211\346\262\243/20260724-\346\235\250\345\205\211\346\262\243.md" new file mode 100644 index 0000000000000000000000000000000000000000..011d08f70aef2065b4609a9766a88f037f918247 --- /dev/null +++ "b/reports/daily/\346\235\250\345\205\211\346\262\243/20260724-\346\235\250\345\205\211\346\262\243.md" @@ -0,0 +1,25 @@ +# 日报 - 杨光沣 - 2026-07-24 + +## 今日完成 + +1. 在 `feature/test-deploy-log` 分支补充 `backend/sql/schema.sql`,完成商品分类表、商品表及必要的唯一约束、索引、外键和价格校验约束。 +2. 补充 `backend/sql/data.sql`,准备 6 个分类、36 个商品,满足不少于 3 个分类和 30 个商品的验收要求。 +3. 保持演示数据编号一致:商品 ID 1/2/22 分别为无线蓝牙耳机、机械键盘、咖啡豆;增加库存为 1 的低库存商品和已下架商品。 +4. 增加 `backend/sql/verify_data.sql` 与执行说明,并更新数据库初始化检查记录。 + +## 遇到的问题 + +| 问题描述 | 解决状态 | 解决方式/求助对象 | +|----------|----------|-------------------| +| 仓库原先没有 `backend/sql` 初始化脚本 | 已解决(商品目录范围) | 新建商品目录结构、数据和复查脚本 | +| 本机没有 MySQL 客户端,Docker Desktop 引擎未启动 | 未解决 | 已完成静态检查;环境可用后执行三份 SQL 并回填结果 | +| 用户、购物车、订单、支付等表尚未集成 | 未解决 | 等待对应模块负责人提交后继续做完整初始化复核 | + +## 明日计划 + +1. 启动 MySQL 或 Docker 环境,执行初始化脚本和复查脚本,保存真实查询结果。 +2. 继续补充购物车、订单、支付和后台管理测试用例,使总数达到 40 条以上。 + +## 今日工时 + +约 3 小时