On Wed, Apr 12, 2017 at 3:32 PM, Gavin Wahl <gw...@fusionbox.com> wrote:
> 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.