用 SQLite 記帳的第三年
三年前我把記帳從手機 App 搬到了一個 SQLite 文件裡。起因很簡單:那個 App 改成了訂閱制,導出的 CSV 還缺了備註字段。
現在的結構只有一張表:
CREATE TABLE txn (
id INTEGER PRIMARY KEY,
day TEXT NOT NULL, -- 2026-03-21
amount INTEGER NOT NULL, -- 單位是分,支出為負
account TEXT NOT NULL, -- 現金 / 信用卡 / 交通卡 ...
category TEXT NOT NULL,
note TEXT
);
金額用整數「分」來存,避開浮點誤差。這是第一年踩過坑之後才改的。
每月對一次帳
每個月初花二十分鐘,把信用卡帳單和表裡的記錄對一遍。查漏用的是一個很笨的查詢:
SELECT category, SUM(amount) / 100.0 AS total
FROM txn
WHERE day BETWEEN '2026-02-01' AND '2026-02-28'
GROUP BY category
ORDER BY total;
三年下來,最大的收穫不是省了多少錢,而是對「錢花到哪裡去了」有了確切的答案,不再靠感覺。
分類越分越細是個坑
第一年我設了四十多個分類,「咖啡」和「飲料」分開,「地鐵」和「公交」也分開。結果每次記帳都要猶豫一下,統計時又得手動合併。後來砍到十二個,夠用了。
如果你也想試試,我的建議是:先隨便記一個月,不要急著設計表結構,月底再根據實際數據決定要哪些列。