Let's say that we'd like to allow users to share other user's status updates with their own followers. For each status update, we'll keep track of the shares so that we can display them to the author. Unlike starring a status update, the same user can share the same status update more than once, so we will track shares as discrete events, retaining the order in which they occurred.
A list column fits this task perfectly. Like sets, lists contain collections of values; but unlike sets, values in sets are non-unique and have a stable and defined order.
First, let's add a new list column to our user_status_updates
table:
ALTER TABLE "user_status_updates"
ADD "shared_by" LIST<text>;
The syntax for defining a list column is identical to that for defining a set column; we simply swap in LIST
for SET
.