On Wed, Apr 12, 2017 at 3:32 PM, Gavin Wahl <gwahl(at)fusionbox(dot)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.