Generate Your PRD Free — No account required
Try PRD Generator →
Back to Templates
TemplateFree Download

Database Schema Documentation Template

Download the database schema template for AI coding projects. Includes tables, columns, relationships, indexes, and RLS policies.

TL;DR: Document your database schema so AI tools query correct columns. No more hallucinated column names.

The Template

## [Project Name] — Database Schema

## Overview

- **Database:** PostgreSQL / MySQL / SQLite
- **ORM:** Prisma / Drizzle / None
- **Provider:** Supabase / AWS RDS / Local

---

## Tables

### users

Primary user accounts.

| Column     | Type        | Constraints                   | Description  |
| ---------- | ----------- | ----------------------------- | ------------ |
| id         | UUID        | PK, DEFAULT gen_random_uuid() | Primary key  |
| email      | TEXT        | UNIQUE, NOT NULL              | User email   |
| name       | TEXT        | NOT NULL                      | Display name |
| role       | TEXT        | DEFAULT 'user'                | user / admin |
| created_at | TIMESTAMPTZ | DEFAULT now()                 | Created      |
| updated_at | TIMESTAMPTZ | DEFAULT now()                 | Updated      |

**Indexes:**

- `idx_users_email` on (email)

**RLS Policies:**

- Users can read/update their own row
- Admins can read all

---

### [table_name]

[Description of table purpose]

| Column     | Type        | Constraints                      | Description   |
| ---------- | ----------- | -------------------------------- | ------------- |
| id         | UUID        | PK                               | Primary key   |
| [column]   | [TYPE]      | [CONSTRAINTS]                    | [Description] |
| user_id    | UUID        | FK → users(id) ON DELETE CASCADE | Owner         |
| created_at | TIMESTAMPTZ | DEFAULT now()                    | Created       |

**Indexes:**

- `idx_[table]_user` on (user_id)
- `idx_[table]_[column]` on ([column])

**RLS Policies:**

- [Policy description]

---

## Relationships

```mermaid
erDiagram
    users ||--o{ projects : owns
    projects ||--o{ tasks : contains
    users ||--o{ tasks : assigned_to
```

DDL

-- users
CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    email TEXT UNIQUE NOT NULL,
    name TEXT NOT NULL,
    role TEXT DEFAULT 'user',
    created_at TIMESTAMPTZ DEFAULT now(),
    updated_at TIMESTAMPTZ DEFAULT now()
);

CREATE INDEX idx_users_email ON users(email);

-- Enable RLS
ALTER TABLE users ENABLE ROW LEVEL SECURITY;

-- RLS Policies
CREATE POLICY "Users can read own data"
    ON users FOR SELECT
    USING (auth.uid() = id);

-- [Additional tables...]

Migrations

All migrations stored in /supabase/migrations/ (or /prisma/migrations/)

Migration Date Description
001_initial 2026-01-01 Initial schema
002_add_projects 2026-01-02 Add projects table

---

## How to Use

1. Copy template to `/docs/schema.md`
2. Fill in your tables and columns
3. Reference in AI prompts

**Example prompt:**

Using @docs/schema.md, write a query to get all projects for the current user. Check column names against the schema.


---

## Related

- [Data Model Guide](/blog/data-model-template-for-apps)
- [API Spec Template](/templates/api-spec-template-openapi-ai)
- [SDD Template Pack](/templates/spec-driven-development-template)

---

> **Schema that AI respects.** [Generate →](/)

---

*Last updated: January 2026*

Generate All 60+ Documents Automatically

Skip manual template filling. Context Ark generates complete spec packs from a brain dump.

Get Started Free →