Skip to main content

Database Documentation

Comprehensive database documentation for Remind Tools, covering schemas, relationships, and implementation details.

Overview

Remind Tools uses Supabase (PostgreSQL) as the primary database, providing:
  • Relational data storage
  • Real-time subscriptions
  • Row-level security
  • Database functions and triggers

Database Structure

Money Domain ERD

Entity relationship diagram for the Money app domain

Money Implementation

Implementation details and SQL schemas

Core Schemas

Money Domain

The Money app uses a comprehensive schema for financial management:
  • users - User profiles and settings
  • accounts - Financial accounts
  • transactions - Transaction records
  • categories - Transaction categories
  • budgets - Budget definitions
  • goals - Financial goals

Trips Domain

The Trips app schema for travel planning:
  • trips - Trip definitions
  • itineraries - Day-by-day plans
  • activities - Trip activities
  • accommodations - Lodging details
  • transportation - Travel bookings

Database Features

Row-Level Security (RLS)

All tables implement RLS policies:

Real-time Subscriptions

Enable real-time updates for collaborative features:

Database Functions

Custom PostgreSQL functions for complex operations:

Migration Strategy

Database migrations are managed through:
  1. Version Control: All migrations in supabase/migrations/
  2. Sequential Execution: Numbered migration files
  3. Rollback Support: Down migrations for reversibility
  4. Testing: Migration testing in staging environment

Performance Optimization

Indexing Strategy

Query Optimization

  • Use database views for complex queries
  • Implement materialized views for reporting
  • Leverage database functions for calculations
  • Use proper indexing strategies

Backup & Recovery

  • Automated Backups: Daily automated backups
  • Point-in-time Recovery: Up to 7 days
  • Manual Snapshots: Before major migrations
  • Export Tools: Regular data exports

Security Considerations

  1. Encryption at Rest: All data encrypted
  2. SSL/TLS: Encrypted connections
  3. Access Control: Role-based permissions
  4. Audit Logging: Track all modifications
  5. Data Masking: Sensitive data protection