Backend Lab 1-3 Event-based System 把 Replay 變成 View

view 並不會存資料,可以把 view 看成是一種「查資料的方式」。

把 replay 的 query 存成一個 view:

1
2
3
4
5
6
CREATE VIEW order_status_view AS
SELECT
payload->>'order_id' AS order_id,
bool_or(type = 'payment_confirmed') AS is_paid
FROM events
GROUP BY payload->>'order_id';

以後要查 order status 只需要:

1
SELECT * FROM order_state_view