日結是一個可辨識的發布結果
昨晚發布產量一千件,今天收到昨天的遲到事件,正確產量變成一千零八件。若直接覆寫昨日報表,已下載的人仍拿著一千件,新查詢卻顯示一千零八件,兩邊都不知道差異從何而來。先保留已發布版本,再建立有原因、有依據的新版本。
把統計所屬期間、資料接收截止時間與報表發布時間分開。昨日生產的事件今天收到,仍可能屬於昨日期間,但不在昨晚的資料快照中。日結不是保證所有來源永不補送,而是對某個截止條件下的結果正式留下紀錄。
本文適用於生產日報、品質統計與批次彙總的版本管理,不代替特定法規的保存年限或簽核要求。資料庫以PostgreSQL交易概念說明一致發布;實際報表軟體是否支援版本與審核,需要另查產品功能。
先定義一份報表的身分:設備或產線、統計日期、班別、指標版本及時區。修訂號屬於同一份報表的不同發布結果,不能靠檔案最後修改時間猜版本;兩份不同時區的日報,也不能只因日期字面相同就視為同一份。
從一千件到一千零八件留下完整差異
教學案例原版R1顯示合格產量一千件。今天收到十二筆昨日事件,其中三筆已在R1計入,另一筆實際屬於今天,只有八筆是昨日新增。先去重並核對事件時間,才能把修訂版R2改為一千零八件,不能收到十二筆就全加十二。
修訂紀錄至少包含原版本、新版本、修訂原因、資料截止時間、受影響事件或匯入批次、計算規則版本及執行者。若有覆核流程,再保存覆核人與時間。原因要寫成「來源A離線補送八個昨日合格事件」,而不是只有「資料更新」。
差異表列出舊值一千、新值一千零八、差額八,並能追到新增的八個事件。三筆重送與一筆跨日也保留排除依據,讓接手者知道十二筆如何變成八筆。若事件涉及品質判定更正,應另外列更正而非新生產。
假設又發現原來五件應屬不合格,總生產未變,但合格數再減五,不合格數增加五。這是分類修訂,不是刪除五件生產。每項指標各列差異,避免只改合格數後,合格加不合格與總數對不起來。
完成後,R1仍可查到當時的一千件,R2可查到一千零八件,畫面預設最新版本並清楚標示修訂。下載檔含版本號與資料截止時間;拿著R1的人可以找到它被哪個版本取代,而不是被告知檔案內容從未存在。
固定資料集合再重算與發布
重算時固定納入的事件集合或一致快照,避免計算總產量時一批資料已進來、計算合格數時另一批才進來。保存足以重現的輸入範圍與規則版本,不能只寫「使用當下資料庫」,因為當下會隨時間改變。
完整重算與增量修正擇一明確執行。若已用全部新舊事件重算出一千零八件,就不能再把新增八件加一次。增量方式則必須處理新增、撤銷與分類變更,每個修訂項目有自己的穩定識別,重跑不應再次加減。
先產生候選版本,核對指標與差異,再一次發布新版本及最新版本指標。資料庫內相關更新可用交易維持一致;若Word、CSV等檔案存放在外部,還要另設檔案就緒與發布狀態,資料庫交易不會自動保證外部檔案完成。
兩個人同時從R1建立修訂時,要檢查提交時最新版本是否仍為R1。若另一份已成為R2,後來的工作應重新比對或建立後續版本,不能讓較舊資料覆蓋最新結果。版本號唯一不等於已解決內容衝突。
發布失敗時保留候選狀態與錯誤,原正式版本仍可使用。不要先把R1標成失效再等待R2檔案生成,否則中斷會留下沒有可用報表的空窗。撤回新版也應留下撤回原因與替代版本,不靠刪檔掩蓋過程。
讓下游知道是替換而不是新增
下游匯入日報時,須以報表身分與版本辨識修訂。若把R1的一千與R2的一千零八都當新產量加總,會變成兩千零八。介面應明訂傳送完整替代結果或差額,兩種格式不能混用,重送同一版本也不能重複套用。
通知內容列出受影響日期、產線、指標、差異與新版本位置。若已有人用舊版做週報,應能追查受影響的彙總並安排重算;只有畫面角落更新版本號,不能保證所有已匯出的下游結果都同步改正。
失敗時先查補登事件是否屬於正確期間,再查是否已去重,接著查重算是否固定截止點。若個別值正確而總數翻倍,多半要查完整版本被當增量套用;若同一修訂重跑再次改數字,則查修訂識別與接受記錄。
驗收至少測一次正常補登、一次相同補登重跑、一次分類更正與一次發布中斷。確認舊版仍可回查、最新指標只指向完成版本、差異可追到事件。沒有來源證據的人工調整必須明確標示,不能偽裝成原設備量測。
練習與常見問題
練習:原報表總數五百,補送七筆,其中兩筆重複、一筆屬次日,應新增四筆而成五百零四。若另有兩件從合格改判不合格,總數仍五百零四;合格與不合格分類分別減二與加二,不能再把總數減二。
問:日結後資料就不能改嗎?答:可依制度修訂,但要保留已發布結果、原因與新版關係。
問:檔名寫最新版夠嗎?答:不夠,需要穩定報表身分、修訂號與資料截止時間。
問:只留差額能重現整份日報嗎?答:還需要原版、全部修訂順序及計算規則,完整快照通常更容易核對。
問:已寄出的舊檔可以默默換掉嗎?答:應發布可追蹤的新版本,讓使用者知道差異並更新相關彙總。
參考:PostgreSQL 18 Transactions:本文一致發布設計所用的資料庫交易基礎;修訂制度為教學設計。