I’ve had a lot of trouble modeling the Team Member / Author roles I recently came up with to support everything we need to on collaborative blogs. Unlike Users, Posts, and Collections (blogs) that I can understand from one perspective, these new concepts need several perspectives to fully understand (and model correctly). At this point, I think I’ve finally worked it all out:
From a data perspective, these are distinct objects with a one-to-one relationship. A Member is (aside: always backed by one User, and) always associated with one Author — but an Author can exist without an associated Member (if the Member was removed from the team, the User was deleted, or it’s an outside collaborator).
From a user management perspective, team admins will always interact with either a Member-Author or just an Author object. But the complexity will be hidden and they’ll look the same to the end user — just in different states, really.
From a user (writer) perspective, a team writer will always interact with an Author object. They’ll only be concerned with who is authoring a post.
Thoughts? Discuss...