- Family and team sharing become impossible — subscriptions are locked to one person
- Profile switching breaks — you cannot have separate preferences per context
- Billing gets messy — transferring subscriptions or handling corporate accounts is hard
The four models
User — authentication identity only
User — authentication identity only
Account — where content and quotas live
Account — where content and quotas live
Think Netflix profiles. Projects, documents and assets belong to an Account, not a
User.
AccountUser — many-to-many with roles
AccountUser — many-to-many with roles
Subscription — billing state attached to the Account
Subscription — billing state attached to the Account
What this buys you
- One user can access multiple accounts (personal plus work)
- Multiple users can share one account (a family plan)
- Subscriptions transfer cleanly when ownership changes
- Content queries are scoped to Account, not scattered across Users
- Team features can be added later without schema changes
When to use this pattern: any app with subscriptions, quotas, shared resources, or
where users might want separate workspaces or profiles.