Template

Data Model Template for Product Teams

Data models define the structure of your application at its most fundamental level. Schema design decisions made early are expensive to change later because they affect every feature built on top of them. PMs should understand and contribute to data model decisions.

This template helps PMs and engineers collaborate on data model design by documenting entities, relationships, access patterns, and constraints in a shared format.

Template sections

5 sections covering the complete data model workflow.

01

Entity Definitions

List each entity (table) with its purpose, key fields, and relationships. For each entity: name, description, primary key, foreign keys, and the most important attributes. Include cardinality: one-to-one, one-to-many, or many-to-many. This is the section PMs should understand thoroughly.

02

Access Patterns

Document the primary ways the application reads and writes data. Example: "List all projects for a workspace (filtered by visibility)," "Get a project with its requirements and tickets," "Search context embeddings by similarity." Access patterns determine which indexes are needed and how tables should be structured.

03

Field Constraints and Validation

For each important field: data type, nullable or required, default value, maximum length, and validation rules. Example: "status field is an enum with values: draft, published, archived. Default is draft. Transitions: draft -> published (one-way), published -> archived (one-way)."

04

Multi-Tenancy and Security

Document the tenancy model: which fields enforce data isolation, how row-level security works, and which roles have access to which data. In multi-tenant systems, every table that stores user data must include the tenant identifier and participate in the RLS policy.

05

Migration Strategy

Document how schema changes are deployed: migration framework, zero-downtime requirements, data backfill procedures for new columns, and rollback plan for failed migrations. Include the team's migration checklist: backup verification, staging test, production deploy, and post-deploy validation.

Copy-paste template

# Data Model: [Feature/System Name]

## Entities
### [Entity Name]
- **Purpose:** [What this table represents]
- **Primary Key:** [Field]
- **Tenant Key:** [organization_id]

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| id | UUID | Yes | gen_random_uuid() | Primary key |
| [field] | [type] | [Yes/No] | [default] | [notes] |

### Relationships
| From | To | Type | FK Field |
|---|---|---|---|
| [Entity A] | [Entity B] | One-to-many | [field] |

## Access Patterns
| Pattern | Query | Frequency |
|---|---|---|
| [Description] | [SQL-like query] | [High/Med/Low] |

## Indexes
| Table | Columns | Type | Justification |
|---|---|---|---|
| [Table] | [Columns] | B-tree | [Access pattern] |

## Migration Plan
1. Add new columns (nullable)
2. Deploy code that writes to new columns
3. Backfill existing rows
4. Add NOT NULL constraint
5. Deploy code that reads from new columns

Frequently asked questions

Generate instead of filling in templates

Connect your tools, and Vantage generates the content using real product data. Free to start.

Free to start. No credit card required.