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.
​

Reply via email to