「點擊座位即變色並更新數據庫」會導致:
seats = {id: {status: 'available'|'selected'|'sold', ...}},點擊切換 available <-> selected,僅修改 DOM class(.selected),**不發請求**。status==='selected' 的座位 ID,一次 POST /api/orders 傳遞 {seatIds: [...]}。SELECT * FROM seats WHERE id IN (...) FOR UPDATE,檢查狀態均為 available,更新為 locked,生成訂單,提交事務釋放鎖。version 列,更新時 WHERE id=? AND version=?,失敗則回滾提示用戶重選。