How do I create a user invitation model?
You could have a pretty simple schema for this with a "trick": treat all user -&gt; list associations as "invitations", including the ownership relation.

You'd have one table for the users (with say a userid column).
Then a table for the lists (with a listid).
The relation between the users and lists tables could be:

userid | listid    | role
----------------------------
bob    | dbas      | owner
alice  | dbas      | invitee
alice  | sysadmins | owner
bob    | sysadmins | invitee
eve    | sysadmins | invitee


An invitation is simply another line in that table.
This allows you to have different levels of access to the lists. A user could "invite" another to have full-control of a list, just read access, or something in between - just define the appropriate set of roles for your use-case.  

You might want to add things like "creator" information, last modification information to the lists themselves.