2.2 KiB
2.2 KiB
P1:基础设施层 — miniapp-db-foundation
优先级:P1(最高,无前置依赖) 预估工作量:中等
需求(Requirements)
用户故事
- 作为后端开发者,我需要
test_zqyy_app中有清晰的 Schema 划分(auth+biz),以便按功能组织业务表。 - 作为后端开发者,我需要通过 FDW 从
test_zqyy_app读取 ETL 库的 DWS/DWD 数据,以便小程序页面展示 ETL 计算结果。 - 作为系统管理员,我需要 RLS 视图按
site_id隔离数据,以便多门店数据安全。
验收标准
- AC1:
test_zqyy_app中存在auth和biz两个 Schema,权限配置正确 - AC2:
test_etl_feiqiu.appSchema 中为数据依赖矩阵列出的所有表创建了 RLS 视图 - AC3:
test_zqyy_app.fdw_etl中所有外部表可正常SELECT,数据与源表一致 - AC4:RLS 视图在设置
app.current_site_id后正确过滤数据 - AC5:所有变更有对应的迁移脚本(
db/zqyy_app/migrations/+db/etl_feiqiu/migrations/)
设计要点
Schema 规划
test_zqyy_app
├── auth — 用户认证、权限、映射
├── biz — 业务数据(任务、备注、AI、Excel)
├── fdw_etl — FDW 外部表(只读,映射 ETL app schema)
└── public — 保留现有系统管理表(admin_users 等)
RLS 实现方案
-- ETL 库 app schema 示例
CREATE VIEW app.v_dws_member_consumption_summary AS
SELECT * FROM dws.dws_member_consumption_summary
WHERE site_id = current_setting('app.current_site_id')::bigint;
FDW 映射
- 使用
postgres_fdw扩展 - 外部服务器指向
test_etl_feiqiu - 外部表映射
appschema 的 RLS 视图(而非直接映射 dws/dwd 表) - 映射表清单见
00-数据依赖矩阵.md第四节
任务清单
- T1:创建
auth和bizSchema + 权限配置 - T2:在
test_etl_feiqiu.app中创建全部 RLS 视图(约 33 张) - T3:配置
postgres_fdw外部服务器和用户映射 - T4:在
fdw_etl中创建全部外部表 - T5:编写验证脚本(检查所有外部表可查询)
- T6:编写迁移脚本并归档