I have a table that stores user notifications:
CREATE TABLE notifications (
user_id INT,
type CHAR(1),
PRIMARY KEY (user_id, type)
);[...]
Is there any way to do this correctly without SERIALIZABLE transactions? It
would be nice to avoid having to retry transactions. Ideally I'd like to avoid
explicit locking as well.
Given this limited example I'd probably choose to model notifications as an array on the user table. Then just "UPDATE user SET notifications = array['a','b']::text WHERE user_id = 1;
David J.