[Task][T02] 设计并迁移最小闭环数据库模型 #4

Closed
opened 2026-08-14 14:24:34 +08:00 by ila · 3 comments
Owner

基本信息

要解决的问题

建立最小闭环数据库模型,并为无注册码的设备自注册提供唯一安装身份和令牌存储。

范围

  • PDD 商品、规则、任务/结果合一、规格维度/值/SKU、任务租约。
  • 设备表保存唯一 install_id、设备状态、最后心跳和令牌摘要。
  • install_id 由 Android 首次安装生成;服务端不使用硬件标识作为唯一键。

明确不做

  • 不建立注册码、注册申请或设备审核表。
  • 不接入顺云宝、Shopee、采购、批量任务、规则发布、实时屏幕。

验收标准

  • goods_id 唯一。
  • install_id 唯一,Token 仅保存不可逆摘要。
  • 同商品最多一个 pending/running;不存在 collection_result 主表、规则版本表或注册码表。
  • 迁移和唯一约束测试通过。

参考文档

  • docs/07-mvp-requirements.md
  • docs/08-agent-api-contract.md
## 基本信息 - 上级 Epic: #1 - 所属 MVP: #2 - 任务编号: T02 - 前置依赖: #3 - 原始需求确认: 2026-08-14 ## 要解决的问题 建立最小闭环数据库模型,并为无注册码的设备自注册提供唯一安装身份和令牌存储。 ## 范围 - PDD 商品、规则、任务/结果合一、规格维度/值/SKU、任务租约。 - 设备表保存唯一 `install_id`、设备状态、最后心跳和令牌摘要。 - `install_id` 由 Android 首次安装生成;服务端不使用硬件标识作为唯一键。 ## 明确不做 - 不建立注册码、注册申请或设备审核表。 - 不接入顺云宝、Shopee、采购、批量任务、规则发布、实时屏幕。 ## 验收标准 - `goods_id` 唯一。 - `install_id` 唯一,Token 仅保存不可逆摘要。 - 同商品最多一个 pending/running;不存在 collection_result 主表、规则版本表或注册码表。 - 迁移和唯一约束测试通过。 ## 参考文档 - `docs/07-mvp-requirements.md` - `docs/08-agent-api-contract.md`
ila changed title from [Task][T02] 设计并迁移一期核心数据库模型 to [Task][T02] 设计并迁移最小闭环数据库模型 2026-08-14 15:09:24 +08:00
Author
Owner

开始实施 T02。前置 T01 已完成并通过验证。

本次只处理工单声明的数据层:PDD 商品、规则、任务/结果合一、规格/SKU、设备安装身份与令牌摘要、任务租约和唯一约束;不创建接口、页面或 Android 业务逻辑。

约束实现方向:使用可空 guard 列配合复合唯一索引,使 SQLite/MySQL/PostgreSQL 均能表达“同商品最多一个 pending/running”和“一台设备最多一个 running”,并增加迁移幂等与唯一约束测试。

开始实施 T02。前置 T01 已完成并通过验证。 本次只处理工单声明的数据层:PDD 商品、规则、任务/结果合一、规格/SKU、设备安装身份与令牌摘要、任务租约和唯一约束;不创建接口、页面或 Android 业务逻辑。 约束实现方向:使用可空 guard 列配合复合唯一索引,使 SQLite/MySQL/PostgreSQL 均能表达“同商品最多一个 pending/running”和“一台设备最多一个 running”,并增加迁移幂等与唯一约束测试。
Author
Owner

T02 实现完成,保持开启等待用户验收。

实现:

  • 新增 agent_device、pdd_product、collection_rule、collection_task、规格维度/值、SKU/SKU 值 8 张表。
  • collection_task 同时保存任务生命周期与结果摘要,不存在 collection_result 主表。
  • install_id、goods_id 唯一;设备只保存 64 字符 Token 摘要,不存在明文 Token 字段。
  • 通过可空 guard 列和复合唯一索引保证同商品最多一个 pending/running、同设备最多一个 running。
  • 状态、guard、非负价格均有数据库检查约束。
  • 新增 go-admin version-local 迁移注册和可复用迁移包。
  • 架构、业务规则、API 契约和本地验证文档已同步。

验证:

  • go test ./app/goauto/...:通过。
  • go test ./...:通过。
  • go build ./...:通过。
  • 迁移重复执行、必要/禁止表、唯一 install_id/goods_id、活动任务与设备串行约束测试均通过。

未实现 T02 范围外的接口、页面、注册码/审核、顺云宝、Shopee、采购或实时屏幕。

T02 实现完成,保持开启等待用户验收。 实现: - 新增 `agent_device`、`pdd_product`、`collection_rule`、`collection_task`、规格维度/值、SKU/SKU 值 8 张表。 - `collection_task` 同时保存任务生命周期与结果摘要,不存在 `collection_result` 主表。 - `install_id`、`goods_id` 唯一;设备只保存 64 字符 Token 摘要,不存在明文 Token 字段。 - 通过可空 guard 列和复合唯一索引保证同商品最多一个 pending/running、同设备最多一个 running。 - 状态、guard、非负价格均有数据库检查约束。 - 新增 go-admin version-local 迁移注册和可复用迁移包。 - 架构、业务规则、API 契约和本地验证文档已同步。 验证: - `go test ./app/goauto/...`:通过。 - `go test ./...`:通过。 - `go build ./...`:通过。 - 迁移重复执行、必要/禁止表、唯一 install_id/goods_id、活动任务与设备串行约束测试均通过。 未实现 T02 范围外的接口、页面、注册码/审核、顺云宝、Shopee、采购或实时屏幕。
Author
Owner

用户已于 2026-08-15 明确验收通过,现关闭工单。

用户已于 2026-08-15 明确验收通过,现关闭工单。
ila closed this issue 2026-08-15 08:58:25 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#4