In my app (which is a database of grant proposals) I have Users, who actually log in and use the app, and “Authors” who are more of a historical object - as in “John Smith wrote this proposal.”
John Smith may be a User of the app, but he may also be an old staff member or someone else outside of the organization entirely (an Author, but not technically a User).
I’ve been told that I can have Users who never log in, but my understanding is that the email address field is required for Users. Often, we won’t have an email address for someone who’s just an Author, so using Users as Authors won’t work (I think?).
Because of this, I have two separate, but sometimes related, data types:
- Users - actual people using the app, who have login credentials and various privacy settings
- Authors - just a data type with just 3 fields: name (required), photo (not required), corresponding User (not required).
Here’s how Authors are currently created:
- When a User is created, a corresponding Author is automatically created. So every User also is an Author.
- When a Team (basically, my main account type for billing) is created, an “Unknown” Author is automatically created (in case the original author of a proposal is unknown).
- When a User wants to attach a different Author (as in, not them) to a project, they either select from the Authors already in the system, or create new Author, which will not have a corresponding User.
I worry this will get really complicated and I’ll end up with redundant data or tons of backend workflows to keep things up to date. And what if an Author who isn’t a User needs to become a User? Just feels like there’s potential for a big ol’ mess and that there’s probably a simpler way to handle this.
Curious how others have done it (and if I’m wrong about the email address being a required field for Users).