FSTS DB Schema(PDM_FSTS)

Model:PDM_FSTS Report:FB-複委託 作者:Tony 最新版本:v1.1(2026-04-14) 首版:v1.0(2026-04-13)

本頁是 FSTS 主業務資料庫的結構總覽。逐欄位細節請回讀 raw:db-schema.md(curated 版)或 PDM Report(原始 PowerDesigner 版)。12

資料表清單

14 個主要資料表,依業務分類如下。3

系統與代碼

代碼COBOL FD說明
AllCode系統通用代碼表
ChangeLog資料列層級 Before/After 變更歷程

基本資料主檔

代碼COBOL FD說明
CountryMarketBaseInfoCTRY-F國家 / 市場基本資料
CurrencyBaseInfoUNIT-F貨幣代號設定
CustomerBaseInfoCUST-F客戶基本資料主檔
CustomerAccountBaseInfoFUMB-F客戶開戶資料
CustomerKYCCUS2FKYC 風險承受度
ExchangeBaseInfoEXMB-F交易所
ExchangeRateEXRT-F匯率主檔
ExecutingBrokerBaseInfoUPMB上手券商
ForeignSecurityBaseInfoFSMB外國股票

交易回報(唯讀,由 COBOL FD 轉檔寫入)

代碼COBOL FD說明
OrderDetailFSIO委託回報(S-ORD)
MatchDetailFHIO-F成交回報(S-ORD)

交易費率

代碼COBOL FD說明
TradingFeeCFGUPPM-F交易所別參數(主檔)
TradingFeeCFGDetailUPPM-F費用明細(由原 COBOL FD 正規化後拆出)

ChangeLog|異動紀錄

模組:S-CHG 異動紀錄查詢 建立時間:2026-04-16(Feature: S-CHG)

  • 主鍵Id bigint IDENTITY(1,1)
  • 必填索引欄位ModuleNameTableNameRecordIdOperationTypeOperatedByBrokerNoBrokerNameOperatedAtSYSUTCDATETIME()
  • 欄位異動內容Changes nvarchar(MAX)FieldChange[] 序列化 JSON,含 {prop, label, old, oldText, new, newText}
  • 索引IX_ChangeLog_ModuleNameIX_ChangeLog_OperatedAt DESCIX_ChangeLog_OperatedBy
  • 寫入規則:一般 CRUD 由 ChangeLogInterceptor 自動;批次由 Handler 呼叫 IWriteChangeLogService.WriteAsync()(見 BR-010

4

AllCode|系統代碼檔

  • 複合主鍵CodeCode + Code + SubCode
  • 用途:系統通用代碼表,統一管理下拉選單
  • 特殊語意CodeCode='0' 的列表為該代碼的欄位說明資訊
  • 欄位含SortNoDisplayNameCodeContentSysMark(0 非系統 / 1 系統內使用不允許更動)、UsedMark(0 N / 1 Y)
  • 稽核欄位CreatedUserIdCreated_atUpdatedUserIdUpdate_at(所有表共通)

56

CountryMarketBaseInfo|交易所基本資料檔(CTRY)

  • 主鍵CountryCode varchar(8) ← COBOL COUNTRY
  • 關鍵欄位
    • SimpleName / FullName
    • TradingDate (T Day) / PreviousTradingDate (T-1 Day) — 民國年 → 西元年
    • TDCCCountryCode(集保國別代碼)
    • OrderCutoffTime(收單時間 HHMMSS)
    • MarketAreaCode:1=亞股 / 2=美加 / 3=歐股 / 9=其他
    • AllowedInvestorType(國家評等):1=全部 / 2=專業投資人以上 / 3=專業投資機構以上 / 4=基金戶
    • IsoCountryCode:ISO-3166 Alpha-2(US / TW / JP)
    • RecurringOrderTime(定期定額送單時間)

78

CurrencyBaseInfo|貨幣代號設定檔(UNIT)

  • 主鍵Currency char(3) ← COBOL UNIT
  • 關鍵欄位CurrencyNameCountryCodeMinimumInterestAmountInterestRateDecimal(小數位數)、HNCBCurrencyNo(華南銀行)、CUBKCurrencyNo(國泰世華)

910

CustomerAccountBaseInfo|客戶開戶資料主檔(FUMB)

  • 複合主鍵BrokerNo char(4) + AccountNo numeric(6) ← COBOL BHNO + CSEQ
  • 帳號組成BHNO + CSEQ + CKNO = Account
  • 日期AccountOpenDate / AccountCloseDate / LastTradeDate 等皆民國年 → 西元年
  • 銀行類型列舉DepositBankType / WithdrawalBankType:1=台外幣 / 2=台幣 / 3=外幣
  • 帳單寄送MonthlyStatementFlag(Y/N)、StatementDeliveryFlag(Y=是 / N=否 / X=月寄日不寄)、StatementAddressType(空白=通訊優先 / 1=通訊 / 2=戶籍 / 3=電子 / 4=自取)
  • 成年註記IsMinor:N=未成年

1112

CustomerBaseInfo|客戶基本資料主檔(CUST)

  • 複合主鍵BrokerNo + AccountNo ← COBOL BHNO + CSEQ
  • 身份與證號IDNO char(11)(身分證號,末位為錯號註記)、PassportNoStockIDNO(證券戶統編)
  • 姓名SimpleNameFullName(公司法人戶用)、EnglishName
  • 法人相關ResponsibleIDNO / ResponsibleNameAgentName / AgentPhone / AgentIDNO
  • 聯絡資訊TelephoneFAXEmailContactName / ContactPhone / ContactFAX
  • 地址RegisteredAddress / RegisteredZipCodeMailingAddress / MailingZipCode
  • 身份別 IdentityType char(2):01=本國自然人 / 02=本國法人 / 03=境內自然人 / 04=境內法人 / 05=法人分戶 / 06=團體 / 07=境外自然人 / 08=境外法人
  • 商業規則:複合主鍵唯一,見 BR-011

1314

CustomerKYC|客戶基本資料主檔2(CUS2)

  • 複合主鍵BrokerNo + AccountNo ← COBOL BHNO + CSEQ
  • 風險承受度 RiskToleranceLevel char(1):1=C1 保守 / 2=C2 保守偏穩健 / 3=C3 穩健 / 4=C4 穩健偏積極 / 5=C5 積極
  • 交易額度TradingLimitTradingLimitCreateDate
  • 開戶交易目的 AccountPurpose:1=投資/避險 / 2=其他
  • 職業類別OccupationCategory char(1) AZ、NewOccupationCategory char(2) Af(詳原文件)
  • ⚠ 民國年日期UpdatedDate char(8) 以 7 碼民國年字串儲存(yyyMMdd,例 1140420 = 民國 114 年 04 月 20 日);前端顯示透過 formatRocDateToDisplay()YYYY/MM/DDUpdatedDate/UpdatedTime 由後端 Handler commit 時自動填入。見 BR-012

1516

ExchangeBaseInfo|交易所基本資料檔(EXMB)

  • 主鍵ExchangeCode char(4) ← COBOL EXNO(市場代碼)
  • 名稱SimpleNameFullNameCountryCode
  • 保證金交割天數
    • 客戶:CustBuyMarginSettlementDays / CustSellMarginSettlementDays
    • 上手:UpBuyMarginSettlementDays / UpSellMarginSettlementDays
    • 市場:MarketSettlementDays
  • 預設上手DefaultBuyBrokerNo / DefaultSellBrokerNo
  • 市場時間MarketOpenTime / MarketCloseTime + 第二段 MarketOpenTime2 / MarketCloseTime2
  • 旗標OrderSelectionFlag(勾單 Y/N)、CrossDayFlag(跨日 Y/N)
  • 股票編碼 SecurityIdType:1=CUSIP / 2=SEDOL / 3=QUIK / 4=ISIN / 5=RIC
  • 其他FixReferenceNo(FIX 代碼)、CurrencyMarketCode

1718

ExchangeRate|匯率主檔(EXRT)

  • 複合主鍵ExchangeRateDate + SourceCurrency + TargetCurrency(YYYYMMDD 西元年)
  • 欄位ExecutionExchangeRate(成交匯率)、ClosingExchangeRate(收盤匯率)
  • 異動時間UpdatedDate(民國年 → 西元年)、UpdatedTime

1920

ExecutingBrokerBaseInfo|上手券商基本資料檔(UPMB)

  • 主鍵UpstreamBrokerNo char(4) ← COBOL UPNO
  • 聯絡ContactNameTelephoneFAXAddressRemark
  • 收/付款資訊Beneficiary / BeneficiaryAccountNo / BeneficiaryAddress / BeneficiaryBank / SWIFT(8 碼總行或 11 碼含分行)/ BeneficiaryBankAddress / Remitter / RemitterAccountNo
  • 下單路徑 OrderRouting char(1):1=人工 / 2=FIX / 3=HKFIX / 4=US / 5=FIX 新版(等)
  • 連線狀態 ConnectionStatus:C=連線 / D=斷線
  • 其他SettlementCurrency(交割幣別)、CountryCodeCustodianBank(保管銀行)

2122

ForeignSecurityBaseInfo|外國股票基本資料主檔(FSMB)

  • 複合主鍵ExchangeCode + StockSymbol ← COBOL EXNO + STOCK
  • 商品類別 SecurityType char(1):1=一般股票 / 2=公司債 / 3=認股權證 / 4=股票 ETF / 5=ADR / 6=GDR / 7=存託憑證 / 8=選擇權 / 9=受益證券 / A=其他 / B=特別股 / C=ETN / D=CEF
  • 交易型態 TragingType:0=倍數交易 / 1=大於交易
  • 股票分類 SecurityCategory char(1):0=一般股票 / 1=B 股 / 2=紅籌股 / 3=國企股 / 4=ETF / 5=特別股 / 6=滬港通 / 7=黃金 ETF / 8=ETN / 9=正 2 反 1 ETF / A=商品 ETF / B=創業板 / C=封閉型 CEF / D=比特幣 ETF
  • 停止註記 StopFlag:0=正常 / 1=停止 / 2=停網路 / 3=停人工 / 4=停買進
  • 發行人類別 IssuerType:0=非居民 / 1=居民
  • 控管註記 ControlFlag:0=上手取自 EXMB / 1=上手取自 FSMB
  • 其他CurrencyMinTradingUnit(最低交易股數)、ClosingPriceMarginPercentageUpstreamBrokerNoSEDOLCode

2324

OrderDetail|委託明細(FSIO)

唯讀表。資料來源:COBOL FD 轉檔(FSIO),本系統不寫入此表。25

  • 複合主鍵OrderDate + BrokerNo + OrderNo
    • OrderDate char(8) YYYYMMDD 西元年
    • BrokerNo char(4)BHNO
    • OrderNo char(5)SHEETTERM + DSEQ,例 X0001
  • 委託類別 OrderType:0=現股 / 1=融資 / 2=融券
  • 買賣別 BSCode:B=買 / S=賣
  • 下單方式 TradingType char(3):1=價格限制 / 2=時間限制 / 3=交易指示
  • 下單註記 OrderFlag:1=下單 / 2=刪單
  • 處理狀態 ProcessFlag char(1):空白/0=未處理 / 1=已傳出 / S=已完成 / E=錯誤 / P=人工 / R=拒絕

    空白與 ‘0’ 語意相同,查詢時同時比對兩者。見 BR-011

  • 委託來源 OrderSource:0=一般單 / 1=網路單
  • 股數欄位OrderShare(委託)、CancelShare(取消)、MatchShare(成交)

    remainShare = Max(0, OrderShare - CancelShare - MatchShare);負值強制截為 0

  • 金額OrderPrice numeric(14,6)ReservedAmount numeric(18,6)(圈存)、ExchangeRate numeric(12,6)
  • 其他AccountNoUpstreamBrokerNoExchangeCodeStockSymbolCurrencyRejectReason varchar(12)

2526

MatchDetail|成交回報(FHIO)

唯讀表。資料來源:COBOL FD 轉檔(FHIO-F),本系統不寫入此表。27

  • 複合主鍵MatchDate + OrderNo + ExecAllocSeqNo
    • MatchDate char(8) YYYYMMDD 西元年
    • OrderNo char(5)SHEET
    • ExecAllocSeqNo numeric(2)DNO(分單號)
  • 關聯 OrderDetailMatchDetail.OrderNo + BrokerNo → OrderDetail.OrderNo + BrokerNo
  • 委託日期 / 交割日期OrderDateMarginSettlementDate(保證金)、EquitySettlementDate(股票)— 皆民國年 → 西元年
  • 成交資訊OrderShare(委託股數)、OrderPriceMatchAmount(成交價金)、NetAmount(淨收付)、ReservedAmount(圈存)、MatchTime char(8) HHMMSS00、ExchangeRate
  • 手續費(FEE OCCURS1~8)CommissionFeeProcessingFeeExchangeFeeClearingFeeRemittanceFeeTransactionTaxStampDutyPTPTransactionTax
  • 上手費用(UPFEE OCCURS1~12)UpstreamCommissionFeeUpstreamProcessingFeeUpstreamExchangeFeeUpstreamClearingFeeUpstreamRemittanceFeeUpstreamTransactionTaxUpstreamStampDutyUpstreamStockServiceFeeUpstreamBusinessTaxUpstreamCustodyFeeUpstreamOperatingCostUpstreamSettlementFee

    OCCURS 展開規則見 核心流程 §OCCURS 展開

2728

TradingFeeCFG|交易所別公用參數設定檔(UPPM)

  • 複合主鍵UpstreamBrokerNo + Currency
  • 欄位MarginPercentage(保證金成數,預設 100)、BankCommissionPercentage(銀行佣金成數)
  • 明細資料在 TradingFeeCFGDetail(原 COBOL FD 為一個,正規化後拆出)

2930

TradingFeeCFGDetail|交易所別公用參數設定檔明細(UPPM)

  • 複合主鍵UpstreamBrokerNo + Currency + FeeType
  • 費用類別 FeeType char(2):1=手續費 / 2=處理費 / 3=交易所費 / 4=結算費 / 5=匯款手續費 / 6=交易稅 / 7=印花稅 / 8=股票服務費 / 9=營業稅 / 10=保管費 / 11=營業成本 / 12=交割費用 / 13=單股手續費 / 14=基金戶手續費
  • 費用欄位Fee numeric(18,6)FeeUnit char(1)(0=百分比 / 1=元)、MinimumFeeMaximumFee
  • 買賣雙向費用BuyFee / BuyFeeUnitSellFee / SellFeeUnit(兩者單位別同 FeeUnit
  • 備註:原 COBOL FD 為單一檔案,正規化後拆出;同類問題也存在於成交檔(待考慮是否拆出);代碼類資料應寫入代碼檔

3132


跨表共通約定

稽核欄位(所有表必備)

欄位型別預設值說明
CreatedUserIdvarchar(20)''建檔人員
Created_atDATETIME2sysutcdatetime()建檔時間(UTC)
UpdatedUserIdvarchar(20)''更新人員
Update_atDATETIME2sysutcdatetime()更新時間(UTC)

日期欄位格式慣例

  • 字串型日期欄位 char(8):儲存格式皆為 YYYYMMDD;若源頭為民國年(COBOL 慣例),寫入 DB 前需轉為西元年
  • 例外CustomerKYC.UpdatedDate 是 7 碼民國年字串 yyyMMdd(不轉換),前端顯示時才做格式轉換(見 BR-012

COBOL FD 欄位對應慣例

  • 每個欄位的 COBOL 欄位對應來源是 FD 檔的原始欄位名稱(例 BHNOCSEQTMMDDSHEET
  • 型別轉換規則依各 INI Layout 定義
  • OCCURS 欄位(如 FEE OCCURS1~8UPFEE OCCURS1~12)在 MatchDetail 中已正規化為獨立欄位(而非明細表)

複合主鍵的 ChangeLog 表示

複合主鍵的 ChangeLog.RecordId 以 JSON 物件字串格式記錄:

{"BrokerNo":"9699","AccountNo":"100001"}

單一主鍵則直接記錄 PK 字串值。見 BR-010


版本差異(v1.0 vs v1.1)

3334

版本日期變更
v1.02026-04-13初版 PDM 報告,含 TOC
v1.12026-04-14移除 TOC,表格 header row 位置調整(欄位內容結構一致)

兩版的資料表結構與欄位定義完全相同,差異僅在報告格式。目前 db-schema.md(curated)以 v1.1 為準。


補充資訊

(未來 ingest 新來源會在此追加段落)


參考資料

Footnotes

  1. db-schema.md §DB Schema — PDM_FSTS

  2. FB-複委託_20260414-v1.1.md(PDM v1.1)

  3. db-schema.md §資料表清單

  4. db-schema.md §ChangeLog

  5. db-schema.md §AllCode

  6. FB-複委託 v1.1 §AllCode

  7. db-schema.md §CountryMarketBaseInfo

  8. FB-複委託 v1.1 §CountryMarketBaseInfo

  9. db-schema.md §CurrencyBaseInfo

  10. FB-複委託 v1.1 §CurrencyBaseInfo

  11. db-schema.md §CustomerAccountBaseInfo

  12. FB-複委託 v1.1 §CustomerAccountBaseInfo

  13. db-schema.md §CustomerBaseInfo

  14. FB-複委託 v1.1 §CustomerBaseInfo

  15. db-schema.md §CustomerKYC

  16. FB-複委託 v1.1 §CustomerKYC

  17. db-schema.md §ExchangeBaseInfo

  18. FB-複委託 v1.1 §ExchangeBaseInfo

  19. db-schema.md §ExchangeRate

  20. FB-複委託 v1.1 §ExchangeRate

  21. db-schema.md §ExecutingBrokerBaseInfo

  22. FB-複委託 v1.1 §ExecutingBrokerBaseInfo

  23. db-schema.md §ForeignSecurityBaseInfo

  24. FB-複委託 v1.1 §ForeignSecurityBaseInfo

  25. db-schema.md §OrderDetail 2

  26. FB-複委託 v1.1 §OrderDetail

  27. db-schema.md §MatchDetail 2

  28. FB-複委託 v1.1 §MatchDetail

  29. db-schema.md §TradingFeeCFG

  30. FB-複委託 v1.1 §TradingFeeCFG

  31. db-schema.md §TradingFeeCFGDetail

  32. FB-複委託 v1.1 §TradingFeeCFGDetail

  33. FB-複委託_20260413-v1.md(PDM v1.0)

  34. FB-複委託_20260414-v1.1.md(PDM v1.1)