目标:把老系统(gridvo 178 表)升级为支撑 B 端(13 模块)+ C 端(6 域)的新 schema。
原则:功能以原型为准,老系统仅作数据底座;字段级校核后输出表级三态 + 字段级改造 + 迁移骨架。
依据:既有
db-redesign-proposal-20260812(123 表 v2)+迁移骨架与三态映射表-20260812(Flyway V1-V5)为基线,本方案在其上校验并扩展(补 C 端专属表 + 字段级脏类型改造 + 枚举语义变更)。
| schema 组 | 表数 | 关键表 | 处置 |
|---|---|---|---|
| business_* | ~20 | station/equipment/connector/order/order_details/cost_template3/coupon4/invoice*2/parking_records/ticketing/integral_rule | 保留+改造 |
| member_* | ~28 | member_level/member_plate/member_feedback/member_experience_record/member_commission3/member_company/member_group/member_config/member_page_rule/member_park_bag*/member_address | 保留+改造 |
| pay_* | ~13 | pay_wallet/pay_order/pay_refund/pay_wallet_transaction/pay_wallet_recharge/... | 保留(分单位已对齐) |
| promotion_* | ~11 | 营销/券(与 business_coupon 关系待核) | 改造/合并 |
| gvo_* | ~3 | gvo_charge_daily/gvo_park_daily/gvo_camera_group | 保留(T+1 聚合基座) |
| real_* | ~1 | real_time_monitor | 改造(C4 规范化) |
| interconnected_* | ~4 | interconnected_entrance/certificate/... | 保留(Q6 自有站 only + 预留) |
| system_* | ~32 | system_operate_log/system_config/... | 保留 |
| infra_* / mp_* / tb_* / trade_* / sell_* / product_* | 其余 | 框架/公众号/交易/商品 | 按需保留/废弃 |
business_station、business_equipment、business_equipment_connector、business_equipment_brand/model、business_order、business_order_details、business_cost_template/_price/_price_type、business_coupon/coupon_template/coupon_take、business_invoice_application/invoice_relation、business_parking_records、member_level、member_plate、member_feedback、member_experience_record、pay_wallet、pay_order、pay_refund、system_operate_log、system_config、gvo_charge_daily、gvo_park_daily。
business_order、business_station、business_order_details、real_time_monitor。business_order.order_status(C1)、member_level.discount_percent(E2)。business_station 侧占位费族(C2,不下沉价格类型)。timestamp without time zone → timestamptz(S2/D13)。member_wechat_bind、member_station_favorite、cend_invoice_title、member_service_faq_category、member_service_faq、member_service_session、member_service_message。report_*(report_station_daily 等,C3 旧系统无,按新增表设计)。member_paid_subscription(schema/member-tables §四)。business_order_250514(归档分表)→ 迁移期快照后废弃。infra_codegen_table/column(代码生成器框架表)→ 废弃。member_commission_*(邀请返佣)→ 新系统按分润层级单模型重构(Q2)。| # | 老系统表.列 | 原类型 | 改造为 | 依据 |
|---|---|---|---|---|
| 1 | business_order.org_all_amount | varchar(255) | numeric(20,2) | C5 |
| 2 | business_order.parked_discount_amount | varchar(255) | numeric(20,2) | C5 |
| 3 | business_order.charged_discount_amount | varchar(255) | numeric(20,2) | C5 |
| 4 | business_order_details.charged_time | varchar(10) | int(秒) | T8 |
| 5 | business_station.park_buffer_time | varchar(255) | int(分钟) | 类型化 |
| 6 | business_station.overtime_min | varchar(255) | int(分钟) | 类型化 |
| 7 | real_time_monitor.*(全 varchar) | varchar | Redis 实时态 + PG numeric/规范化 | C4 |
| 8 | business_order.order_status | smallint(枚举无注释) | smallint + CHECK(10 态映射开发期定稿) | C1 |
| 9 | member_level.discount_percent | smallint(%) | 折扣额(元) numeric(E2,只折服务费) | E2 |
| 10 | 全库 timestamp without time zone | timestamp | timestamptz | S2/D13 |
| 11 | 全库 bigserial 主键 | bigserial | bigint GENERATED BY DEFAULT AS IDENTITY | S1 |
| 12 | pay_* 金额 bigint | bigint 分 | bigint 分(保留)+ string 序列化 | R1/D11 |
此前 c-end-review P1-整合3 已指出「未纳入 DDL/RLS」,本方案补齐。
| 表名 | 归属域 | 关键字段 | 唯一约束 | RLS(S11 22 表族) |
|---|---|---|---|---|
| member_wechat_bind | member | member_id(FK)、openid、unionid、mini_openid、app_id、bind_time | UK(openid) | 纳入 |
| member_station_favorite | member | member_id、station_id、fav_type(1收藏/2常用地)、tag_name、create_time | UK(member_id,station_id,fav_type) | 纳入 |
| cend_invoice_title | order | member_id、title_type(个人/企业)、title_name、tax_no、email、is_default | — | 纳入 |
| member_service_faq_category | service | category_name、sort_order、status | — | 纳入 |
| member_service_faq | service | category_id、question、answer、is_hot、resolved_count、unresolved_count | — | 纳入 |
| member_service_session | service | member_id、session_no、status、agent_id | UK(session_no) | 纳入 |
| member_service_message | service | session_id、sender_type、content、msg_type、create_time | — | 纳入 |
在既有 V1-V5 基础上扩展(V1=RLS 基线 + 时间类型化;V2=金额类型化;V3=枚举映射;V4=C 端专属表;V5=report 抽取):
org_all_amount/parked_discount_amount/charged_discount_amount → numeric(20,2);park_buffer_time/overtime_min/charged_time → int。order_status 10 态映射表(C1 开发期从 gridvo OrderStatusEnum 定稿);member_level.discount_percent → 折扣额迁移函数(按历史订单重算)。抽取任务设计定稿-20260812)。| # | 风险 | 处置 |
|---|---|---|
| C1 | order_status 枚举值 dump 无注释 | 开发期从 gridvo OrderStatusEnum 补全映射表后定稿 |
| C2 | 停车费归属(站侧 vs 价格类型侧) | 已决策 C2:站侧占位费族 + 独立停车减免模块 |
| E2 | 会员折扣语义变更(百分比→折扣额) | 迁移时按历史订单 service_discount_price 反推,需数据校验 |
| C4 | real_time_monitor 全 varchar 历史数据 | 迁移期解析协议帧回填 numeric,或保留原始列 + 新增规范列 |