← 返回版本与方案索引

老系统数据结构与数据表修改方案

目标:把老系统(gridvo 178 表)升级为支撑 B 端(13 模块)+ C 端(6 域)的新 schema。

原则:功能以原型为准,老系统仅作数据底座;字段级校核后输出表级三态 + 字段级改造 + 迁移骨架。

依据:既有 db-redesign-proposal-20260812(123 表 v2)+ 迁移骨架与三态映射表-20260812(Flyway V1-V5)为基线,本方案在其上校验并扩展(补 C 端专属表 + 字段级脏类型改造 + 枚举语义变更)。

一、老系统 schema 概览(178 表 → 14 组)

schema 组表数关键表处置
business_*~20station/equipment/connector/order/order_details/cost_template3/coupon4/invoice*2/parking_records/ticketing/integral_rule保留+改造
member_*~28member_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_*~13pay_wallet/pay_order/pay_refund/pay_wallet_transaction/pay_wallet_recharge/...保留(分单位已对齐)
promotion_*~11营销/券(与 business_coupon 关系待核)改造/合并
gvo_*~3gvo_charge_daily/gvo_park_daily/gvo_camera_group保留(T+1 聚合基座)
real_*~1real_time_monitor改造(C4 规范化)
interconnected_*~4interconnected_entrance/certificate/...保留(Q6 自有站 only + 预留)
system_*~32system_operate_log/system_config/...保留
infra_* / mp_* / tb_* / trade_* / sell_* / product_*其余框架/公众号/交易/商品按需保留/废弃

二、表级三态(保留 / 改造 / 新增 / 废弃)

2.1 保留(沿用老系统表,仅类型规范化)

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。

2.2 改造(字段级,见 §三)

2.3 新增(C 端专属 + report 预聚合)

2.4 废弃 / 合并

三、字段级改造映射(老系统表.列 → 新 schema)

#老系统表.列原类型改造为依据
1business_order.org_all_amountvarchar(255)numeric(20,2)C5
2business_order.parked_discount_amountvarchar(255)numeric(20,2)C5
3business_order.charged_discount_amountvarchar(255)numeric(20,2)C5
4business_order_details.charged_timevarchar(10)int(秒)T8
5business_station.park_buffer_timevarchar(255)int(分钟)类型化
6business_station.overtime_minvarchar(255)int(分钟)类型化
7real_time_monitor.*(全 varchar)varcharRedis 实时态 + PG numeric/规范化C4
8business_order.order_statussmallint(枚举无注释)smallint + CHECK(10 态映射开发期定稿)C1
9member_level.discount_percentsmallint(%)折扣额(元) numeric(E2,只折服务费)E2
10全库 timestamp without time zonetimestamptimestamptzS2/D13
11全库 bigserial 主键bigserialbigint GENERATED BY DEFAULT AS IDENTITYS1
12pay_* 金额 bigintbigint 分bigint 分(保留)+ string 序列化R1/D11

四、C 端 7 专属表 DDL 落点

此前 c-end-review P1-整合3 已指出「未纳入 DDL/RLS」,本方案补齐。

表名归属域关键字段唯一约束RLS(S11 22 表族)
member_wechat_bindmembermember_id(FK)、openid、unionid、mini_openid、app_id、bind_timeUK(openid)纳入
member_station_favoritemembermember_id、station_id、fav_type(1收藏/2常用地)、tag_name、create_timeUK(member_id,station_id,fav_type)纳入
cend_invoice_titleordermember_id、title_type(个人/企业)、title_name、tax_no、email、is_default—纳入
member_service_faq_categoryservicecategory_name、sort_order、status—纳入
member_service_faqservicecategory_id、question、answer、is_hot、resolved_count、unresolved_count—纳入
member_service_sessionservicemember_id、session_no、status、agent_idUK(session_no)纳入
member_service_messageservicesession_id、sender_type、content、msg_type、create_time—纳入

五、迁移骨架(Flyway 扩展)

在既有 V1-V5 基础上扩展(V1=RLS 基线 + 时间类型化;V2=金额类型化;V3=枚举映射;V4=C 端专属表;V5=report 抽取):

  1. V1__baseline:RLS 22 表族 + timestamp→timestamptz(既有,校验覆盖 C 端 7 表)。
  2. V2__normalize_amount:org_all_amount/parked_discount_amount/charged_discount_amount → numeric(20,2);park_buffer_time/overtime_min/charged_time → int。
  3. V3__enum_map:order_status 10 态映射表(C1 开发期从 gridvo OrderStatusEnum 定稿);member_level.discount_percent → 折扣额迁移函数(按历史订单重算)。
  4. V4__cend_tables:C 端 7 专属表 DDL + RLS 授权。
  5. V5__report_extract:report_* 抽取任务(既有 抽取任务设计定稿-20260812)。
  6. 迁移顺序:V1→V2→V3→V4→V5,每步单表单责、回滚演练纳入门禁(§11 既有迁移方案)。

六、风险与待定稿

#风险处置
C1order_status 枚举值 dump 无注释开发期从 gridvo OrderStatusEnum 补全映射表后定稿
C2停车费归属(站侧 vs 价格类型侧)已决策 C2:站侧占位费族 + 独立停车减免模块
E2会员折扣语义变更(百分比→折扣额)迁移时按历史订单 service_discount_price 反推,需数据校验
C4real_time_monitor 全 varchar 历史数据迁移期解析协议帧回填 numeric,或保留原始列 + 新增规范列

相关页面