- 新增购物车与订单管理页面,包含用户列表、购物车详情和订单记录展示功能。 - 实现用户搜索、刷新、重置和退出登录功能。 - 新增购物车和订单数据表结构初始化脚本,包含字段、索引及权限规则设置。 - 实现数据表的创建与更新逻辑,并进行结构校验。
3.0 KiB
3.0 KiB
pb_tbl_cart
来源:购物车表需求草图、
script/pocketbase.cart-order.js类型:base读写规则:微信端原生访问建议仅允许记录所有者访问;当前脚本已按cart_owner = 当前 token 对应 openid配置原生 collection 规则,管理后台建议通过 hooks / API 聚合查询
表用途
用于存储购物车商品项明细。
当前结构按“一个购物车商品项一条记录”设计:
cart_id是单条购物车项业务 IDcart_number是购物车名称 / 分组号,同一购物车下的多条商品项可共用同一个cart_numbercart_owner用于标识购物车所属用户
字段清单
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
text |
是 | PocketBase 记录主键 |
cart_id |
text |
是 | 购物车项业务 ID,唯一标识 |
cart_number |
text |
是 | 购物车名称 / 分组号,默认可按“用户名+年月日时分秒”生成 |
cart_create |
autodate |
否 | 购物车项创建时间,由数据库自动生成 |
cart_owner |
text |
是 | 生成者 openid,约定保存 tbl_auth_users.openid |
cart_product_id |
text |
是 | 产品 ID,建议保存 tbl_product_list.prod_list_id |
cart_product_quantity |
number |
是 | 产品数量,建议业务侧约束为正整数 |
cart_status |
text |
是 | 购物车状态,建议值:有效 / 无效 |
cart_at_price |
number |
是 | 加入购物车时的价格,用于后续降价提醒或对比 |
cart_remark |
text |
否 | 备注 |
索引
| 索引名 | 类型 | 说明 |
|---|---|---|
idx_tbl_cart_cart_id |
UNIQUE INDEX |
保证 cart_id 唯一 |
idx_tbl_cart_cart_number |
INDEX |
加速按购物车名称 / 分组号查询 |
idx_tbl_cart_cart_owner |
INDEX |
加速按所属用户查询 |
idx_tbl_cart_cart_product_id |
INDEX |
加速按产品查询 |
idx_tbl_cart_cart_status |
INDEX |
加速按购物车状态过滤 |
idx_tbl_cart_cart_create |
INDEX |
加速按购物车项创建时间倒序查询 |
idx_tbl_cart_owner_number |
INDEX |
加速同一用户下按购物车分组查询 |
idx_tbl_cart_owner_status |
INDEX |
加速查询某用户的有效购物车项 |
补充约定
cart_owner、cart_product_id当前按文本字段保存业务 ID,不直接建立 relation,便于兼容现有 hooks 业务模型。cart_owner统一保存tbl_auth_users.openid,便于直接使用微信登录返回 token 做原生访问控制。cart_product_quantity、cart_at_price使用number,数量正整数与价格精度建议在 hooks / API 层统一校验。- 当购物车被清空时,建议业务侧将历史记录
cart_status置为无效,而不是直接覆盖有效记录。 cart_create由数据库自动写入,接口层不需要也不应允许客户端自行填值。- PocketBase 系统字段
created、updated仍然存在,只是不在 collection 字段清单里单独声明。