Notion · 排班薪資系統

架構優化:從「402 欄寬表」到「關聯式三表」

核心問題不是 view 上限,而是把「員工」做成了「欄位」。每進一個人就往右加 3 欄,整張表已膨脹到 402 欄、加不動也跑不動。解法:把「人」變成資料列。

資料來源:2024班表總覽(page 2f01b681…84f4)→ 班表 collection e78fa6e8 · 即時抓取於 2026-06-25

診斷 · 舊「班表」寬表現況

402
總欄位數
單一 database
248
formula 欄
大量連動公式
~230
人員專屬欄
薪資 / 額外費用 / 已出帳
+3
每新增一人
就得手動加 3 欄

病根 · 「人」被放在錯的維度

❌ 現在:人 = 欄位會撞牆
日期
公司
時間
林煒傑薪資
林煒傑額外
簡宇成薪資
… ×230 →∞

每進一個人 → 往右加「薪資 / 額外費用 / 已出帳」3 欄 + 複製 formula。 欄位無限長大 → 撞上限、整表卡死、維護地獄。

✅ 目標:人 = 資料列無上限
員工姓名
底薪
額外費用
薪資總額
已出帳

欄位固定不變。新增一個人 → 往下加「一列」。 永遠不撞欄位/view 上限,表又快又好維護。

目標架構 · 關聯式三表(你已起頭的「排班薪資管理」結構)

👤 員工表
員工姓名title
預設底薪number
公司別 / 在職select
薪資記錄relation

一人一列 · 不是一欄

(建議新增的主檔)

↑ 1 ─ N ↓ relation
💰 個人薪資表 · 你手 key 的地方
員工姓名title
底薪number
加班費number
額外費用✋ 手 key
薪資(總額)formula
上班時間rollup
已出帳checkbox
場次連結relation
請款連結relation
備註text

每「一人一期」=一列

↑ N ─ 1 ↓ relation
📅 排班(場次)表
上班時間date
下班時間date
公司名(滷蛋/阿鼎)select
出勤人員m-select
每場加班時數formula
薪資記錄relation
已確認checkbox
備註text

每「一場班」=一列

titlenumber formula 自動算relation 關聯 rollup 帶入date selectmulti-select checkboxtext ✋ = 唯一需要你手 key 的欄

運作流程 · 資料怎麼跑、你動哪裡

📅
1. 排班發生
在「排班表」開一列:時間、公司、誰出勤(出勤人員選員工)。
🔗
2. 自動關聯到薪資
relation 把場次接到「個人薪資表」對應員工那一期的列。
⚙️
3. 系統自動算
能算的都別手打:
底薪 · rollup 員工表 加班費 · formula 薪資總額 · formula 稅額 · formula
4. 你只手 key 這些
真正因人而異、算不出來的,集中在「個人薪資表」一張:
額外費用 特殊調整
🧾
5. 手 key 介面 = 一個 view(取代「一人一 view」)
建一個 table view:filter「已出帳 = ❌」 + group by 員工 / 月份。只看到還沒結的,直接在格子打數字 → 打完勾「已出帳」就消失。再也不用為每個人開一個 view。

關鍵差別 · 一眼看懂

舊(寬表)新(關聯式)
「人」是什麼欄位 → 越加越寬、撞上限資料列 → 無限增長
加一個新人加 3 欄 + 改 formula員工表加一列
手 key 在哪散在 230+ 個專屬欄集中在「個人薪資表」一張
看某人薪資開一個專屬 viewfilter / group by 員工
效能402 欄、248 公式 → 卡死欄位固定、輕快
上限問題會撞牆不存在
排班薪資系統架構優化 · 為 Roy 製作 · Projects/scratch-2026-06-25 · 圖中 schema 為即時抓取之真實欄位