表 A 數據滿足條件時,自動更新表 B 數據。
| 方案 | 優點 | 缺點 |
|---|---|---|
| 數據庫觸發器 | 原子性強、無業務代碼入侵、性能高 | 邏輯在 DB 層,調試較難 |
| Service 代碼雙更新 | 邏輯集中、易測試 | 需事務控制、分布式環境複雜 |
| 消息隊列異步 | 解耦、削峰 | 最終一致性、引入中間件 |
若邏輯簡單、強一致性要求高,觸發器最直接:
CREATE TRIGGER trg_update_b
AFTER UPDATE ON table_a
FOR EACH ROW
BEGIN
IF NEW.status = 'done' THEN
UPDATE table_b SET cnt = cnt + 1 WHERE id = NEW.b_id;
END IF;
END;