FSTS 實體資料表 DDL 草案(V1.0 呈核/設計基線版)
定義新一代複委託系統核心資料實體、命名規範、主外鍵關係、索引與初版 SQL Server DDL 草案。1
適用對象:資訊長、交易室主管、PMO、SA、DBA、開發、測試、資料移轉與介接團隊。1
適用範圍:本版涵蓋 P0/P1 核心閉環;P2 商品擴充與報表彙總類表格採後續增補。1
設計原則:先穩核心交易閉環,再擴商品與通路;主/交易/帳務/介接/稽核明確分域。1
與邏輯模型的區別:
- 邏輯資料模型 — 8 大資料域、17 個主幹表的邏輯層(SA 視角)
- 本頁 — 對映到 MSSQL schema 分域 + 28+ 實體表 + 索引規則的物理層(DBA 視角)
回到 Planning 總覽。
1. 架構與資料域設計原則
2
資料模型不依畫面或單一上手規格堆疊,改採主資料/客戶/商品/交易/介接/帳務/交割/公司行動/會計/稽核/維運分域。核心設計原則:
- 採 schema 分域:
md、cust、prod、acct、ord、ifx、sett、ca、gl、ops
- 關鍵業務主鍵採 surrogate key(
BIGINT IDENTITY);對外識別碼以 business key 維持唯一性
- 所有交易核心表保留
created_at / updated_at;需要併發控制者加 rowversion
- 高頻查詢表預留索引,避免以報表需求反推線上交易表結構
- 敏感資料(如銀行帳號)以遮罩欄位 + 加密欄位分離
2. Schema 分域速查
| Schema | 中文對應 | 用途 |
|---|
md | 主資料 | 市場、交易所、上手、幣別、假日 |
cust | 客戶 | 客戶主檔、稅務、銀行帳戶 |
prod | 商品 | 證券、債券、基金 |
acct | 資產帳務 | 現金餘額、庫存、換匯、入出金 |
ord | 交易 | 委託、事件、成交、分攤、費用 |
ifx | 介接 | FIX Session、FIX 訊息紀錄 |
sett | 結算 | 交割主檔與明細 |
ca | 公司行動 | 事件、分配 |
gl | 會計 | 傳票、傳票明細 |
ops | 維運/稽核 | 使用者稽核、批次執行、檔案交換 |
3. 實體資料表總覽(28+ 表)
3
主資料(md.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
md.core_market | 市場主檔 | 交易市場、時區、交易日曆、預設幣別與狀態 | P0 |
md.core_exchange | 交易所主檔 | 市場底下之交易所、板別、撮合時段 | P0 |
md.core_broker | 上手券商主檔 | 上手代號、FIX 連線參數、對帳與交割屬性 | P0 |
md.core_currency | 幣別主檔 | 幣別、小數位、匯率來源 | P0 |
md.core_holiday | 假日主檔 | 市場/交易所休市日 | P0 |
客戶(cust.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
cust.customer | 客戶主檔 | 客戶基本資料、帳戶層級、電子交易資格 | P0 |
cust.tax_profile | 客戶稅務檔 | W-8/W-9、QI、FATCA/CRS、預扣稅屬性 | P0 |
cust.bank_account | 客戶交割銀行帳戶 | 客戶入出金/扣款帳戶 | P0 |
商品(prod.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
prod.security | 證券商品主檔 | 股票/ETF/ADR 商品主檔 | P0 |
prod.bond | 債券商品主檔 | 債券票息、到期日、面額 | P0 |
prod.fund | 基金商品主檔 | 基金交易型態與清算規則 | P0 |
資產帳務(acct.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
acct.cash_balance | 客戶現金餘額 | 幣別現金、圈存、可動用 | P0 |
acct.position | 客戶庫存 | 商品庫存、可賣數、成本 | P0 |
acct.trading_limit | 交易額度與限制 | 客戶/商品/市場額度與限制規則(亦歸 risk) | P0 |
acct.fx_deal | 匯兌交易 | 換匯申請、成交匯率、匯差 | P1 |
acct.cash_movement | 入出金流水 | 入金、出金、圈存、解圈 | P1 |
交易(ord.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
ord.order_header | 委託單主檔 | 受單、改單、刪單、狀態流 | P0 |
ord.order_event | 委託事件檔 | 委託狀態歷程與訊息快照 | P0 |
ord.trade_execution | 成交回報主檔 | 成交單、價量、執行時間 | P1 |
ord.trade_allocation | 成交分攤 | 平均價/批次成交分配 | P1 |
ord.fee_charge | 費用明細 | 客戶手續費、上手費、交易所費、稅費 | P1 |
介接(ifx.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
ifx.fix_session | FIX Session | 連線狀態、序號、認證 | P0 |
ifx.fix_message_log | FIX 訊息紀錄 | 原始進出訊息封存與重播 | P0 |
結算與公司行動(sett.* / ca.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
sett.settlement | 交割主檔 | T+N 應收應付、交割狀態 | P1 |
sett.settlement_line | 交割明細 | 客戶別/上手別/保管行別交割明細 | P1 |
ca.event | 公司行動主檔 | 股利、分割、合併、下市、要約 | P1 |
ca.allocation | 公司行動分配 | 客戶持有部位分配與入帳 | P1 |
會計、稽核、維運(gl.* / ops.*)
| 表名 | 用途 | 核心內容 | 優先級 |
|---|
gl.voucher | 會計傳票 | 總帳傳票頭 | P1 |
gl.voucher_line | 會計傳票明細 | 借貸分錄 | P2 |
ops.audit_user_action | 使用者稽核軌跡 | 功能操作、異動前後 | P2 |
ops.batch_job_run | 批次執行紀錄 | 排程批次、結果、耗時、重跑 | P2 |
ops.file_exchange | 檔案交換紀錄 | FTP/SFTP 檔案收送與驗證 | P2 |
4. 命名、鍵與索引規則
4
- 表命名採
schema.table_name,小寫底線風格;介面與文件中再映射為中英文名稱
- 唯一對外交易鍵以
client_order_id、broker_exec_id、voucher_no 等 business key 維護,避免外部介接直接依 identity 串接
- 跨域關聯採明確外鍵;高頻大量寫入表(如
ifx.fix_message_log)允許先收後核,必要時以分區或封存策略處理
- 查詢條件中常見的
customer_id、session_date、exec_time、settlement_date 應建立複合索引
- 歷史資料查詢與法遵留痕以 audit/event table 實現,不直接覆蓋核心交易欄位
5. 核心 DDL 主外鍵摘要
5.1 主資料與客戶
5
| 表名 | 關鍵主鍵/唯一鍵 | 核心關聯 | 備註 |
|---|
md.core_market | PK + business key | — | 核心閉環必備 |
md.core_exchange | PK + market_id, exchange_code | md.core_market(market_id) | 核心閉環必備 |
md.core_broker | PK + business key | — | 核心閉環必備 |
cust.customer | PK + business key | — | 核心閉環必備 |
cust.tax_profile | PK + business key | cust.customer(customer_id) | 核心閉環必備 |
cust.bank_account | PK + business key | cust.customer(customer_id) | 核心閉環必備 |
5.2 商品、資產與風控
6
| 表名 | 關鍵主鍵/唯一鍵 | 核心關聯 |
|---|
prod.security | PK + symbol, exchange_id | md.core_exchange(exchange_id) |
acct.cash_balance | PK + customer_id, ccy_code | cust.customer(customer_id) |
acct.position | PK + customer_id, security_id | cust.customer、prod.security |
acct.trading_limit | PK + business key | cust.customer、md.core_market |
5.3 委託、FIX 與成交
7
| 表名 | 關鍵主鍵/唯一鍵 | 核心關聯 |
|---|
ord.order_header | PK + business key | cust.customer、prod.security |
ord.order_event | PK + order_id, event_seq | ord.order_header(order_id) |
ifx.fix_session | PK + broker_id, session_qualifier | md.core_broker(broker_id) |
ifx.fix_message_log | PK + business key | ifx.fix_session(fix_session_id) |
ord.trade_execution | PK + order_id, broker_exec_id | ord.order_header(order_id) |
ord.fee_charge | PK + business key | ord.order_header、ord.trade_execution |
5.4 帳務、交割與公司行動
8
| 表名 | 關鍵主鍵/唯一鍵 | 核心關聯 |
|---|
acct.fx_deal | PK + business key | cust.customer(customer_id) |
acct.cash_movement | PK + business key | cust.customer、ord.order_header |
sett.settlement | PK + execution_id | ord.order_header、ord.trade_execution |
ca.event | PK + business key | prod.security(security_id) |
ca.allocation | PK + business key | ca.event、cust.customer |
gl.voucher | PK + business key | — |
gl.voucher_line | PK + voucher_id, line_no | gl.voucher、cust.customer |
5.5 稽核與維運
9
| 表名 | 關鍵主鍵/唯一鍵 | 核心關聯 |
|---|
ops.audit_user_action | PK + business key | — |
ops.batch_job_run | PK + business key | — |
ops.file_exchange | PK + business key | ops.batch_job_run(batch_job_run_id) |
6. 本版 DDL 草案的邊界
10
- 本版以核心閉環為主,尚未展開所有報表彙總表、快照表、行情歷史表與定期定額專屬表
- 債券、基金、結構型商品可沿用
prod/security 主幹,於後續增補專屬商品表與現金流表
- 高交易量環境建議後續再加入 partition、archive schema、CDC/變更資料擷取與歷史封存策略
- 若最終採多上手多市場高併發架構,
ifx.fix_message_log 與 ord.order_event 需進一步評估分表或熱冷資料分離
7. Review 結論
11
這份 DDL 草案已足以作為下一階段「詳細資料字典、Stored Procedure/API 開發、SIT 測試資料準備與資料移轉欄位映射」的基線。
真正關鍵不在一次把所有表開滿,而在先把客戶、商品、委託、成交、交割、公司行動、稽核與介接日誌的主體模型打正。若這一層正確,後續功能擴張與報表都能沿既有主幹演進。
附錄 A. SQL 檔交付說明
12
隨本文件另附一份 .sql,包含 schema 建立、核心表 CREATE TABLE 與關鍵索引。該檔定位為設計草案,實際上線前仍需依正式命名規範、DBA 標準、資安要求與 HA/DR 架構調整。
附錄 B. 外部技術依據
13
- .NET 與 ASP.NET Core 可部署於 Linux 環境,符合本案開放平台方向
- SQL Server 自 2017 起支援 Linux,可作為本案資料庫平台
- FIX Trading Community 持續維護 FIX Latest 與既有 FIX 4.x / FIXT Session 標準
- REST API 文件建議以 OpenAPI 3.1 作為對外規格描述基礎
相關頁面
補充資訊
2026-04-23 CI 同步版本校對
fb.fsts main 分支透過 CI 同步至 _raw/projects/fsts/docs/project/planning/富邦證券_新一代複委託系統_實體資料表DDL草案_說明書.md(hash 12ea2e5f6444)。本頁 10 個 schema(md / cust / prod / acct / ord / ifx / sett / ca / gl / ops)、28+ 表清單、主外鍵設計與索引規則均維持不變。1415
重點校對結果:
- schema 分域:CI 同步版 §1 明列相同 10 個 schema16
- surrogate key + business key 雙軌、
rowversion、遮罩 + 加密、高頻查詢表複合索引 — 設計原則一致15
- 附錄 A(.sql 交付說明)與附錄 B(外部技術依據:.NET on Linux、SQL Server 2017+、FIX Trading Community、OpenAPI 3.1) — 與本頁附錄章節對齊17
- 本版邊界:未展開報表彙總表 / 快照表 / 行情歷史 / 定期定額專屬表;高併發架構需後續評估
ifx.fix_message_log 與 ord.order_event 分表或熱冷分離 — 一致18
參考資料