A SaaS workspace data model should separate a person's identity from the organizations they belong to. A user answers who someone is. A workspace identifies a customer-owned area of the product. A membership connects the two and records what the person can do there.

This distinction becomes valuable as soon as an agency manages several clients, an employee joins a second team or a founder leaves the company. If these concepts are combined into one user record, everyday business changes become awkward database exceptions.

Begin with the business relationships

Imagine a hypothetical translation agency using a project coordination SaaS. The agency has its own internal workspace, and a freelancer also participates in a client's workspace. The same person needs two memberships with different permissions.

A simple starting model contains these relationships:

EntityRepresentsImportant relationship
UserA person with an application identityHas a separate membership for each workspace they join
WorkspaceA customer or team boundaryOwns projects, files, and other tenant-scoped resources
MembershipA user’s participation in one workspaceLinks a user to a workspace and records role and membership status
Role or permission grantAllowed actions within a defined scopeBelongs to a membership or an explicit resource relationship
ResourceA business record such as a translation projectReferences its owning workspace; access follows that workspace’s policy