Database Navigation in HarborDB

Guides
Last updated: February 16, 2026

Welcome to the database navigation guide! HarborDB provides powerful tools to explore and understand your PostgreSQL databases. This guide will show you how to effectively navigate your database structure, examine tables and relationships, and make the most of HarborDB's visual interface.

The Navigation Interface

Sidebar Overview

The left sidebar is your primary navigation tool. It displays a hierarchical view of your database structure:

Connection Name
├── Databases
│   ├── Database 1
│   │   ├── Schemas
│   │   │   ├── public
│   │   │   │   ├── Tables
│   │   │   │   ├── Views
│   │   │   │   ├── Functions
│   │   │   │   └── Sequences
│   │   │   └── other_schemas
│   │   └── Settings
│   └── Database 2
└── System Objects

Navigation Modes

HarborDB offers two main navigation modes:

  1. Tree View (Default): Hierarchical expansion of objects
  2. Search View: Quick search across all objects

Exploring Databases

Viewing Available Databases

When you first connect, you'll see a list of databases you have access to:

  1. Expand your connection in the sidebar
  2. Click "Databases" to see the list
  3. Double-click any database to explore its contents

Database Information

Right-click any database for quick access to:

  • Properties: View database size, encoding, collation
  • New Query Tab: Open query editor pre-connected to this database
  • Refresh: Update the database list
  • Create Database: If you have permissions

Working with Schemas

Understanding Schemas

Schemas are logical containers within databases. PostgreSQL defaults to the public schema, but you may encounter others.

Exploring Schema Contents

  1. Expand a database to see its schemas
  2. Expand a schema to see object types:
    • Tables: Data storage
    • Views: Virtual tables from queries
    • Functions: Stored procedures and functions
    • Sequences: Auto-incrementing number generators

Schema Operations

Right-click a schema to:

  • Create New Table/View/Function
  • Refresh schema contents
  • Set as Default: Make this your preferred schema

Examining Tables

Table Structure View

When you expand the "Tables" folder, you'll see all tables in the schema. Click any table to see:

Columns Tab

  • Column names and data types
  • Constraints (Primary Key, Foreign Key, etc.)
  • Default values and nullable status
  • Storage information

Data Preview Tab

  • First 100 rows of table data
  • Sortable columns (click headers)
  • Filterable data (right-click column headers)
  • Quick export options

Indexes Tab

  • Index names and types
  • Indexed columns
  • Index size and statistics

Foreign Keys Tab

  • Relationships to other tables
  • Referenced tables and columns
  • Cascade rules

Table Quick Actions

Right-click any table for instant access to:

| Action | Description | Keyboard Shortcut | | ------------------- | ----------------------------------------------- | ----------------- | | Select Top 100 | Open query with SELECT * FROM table LIMIT 100 | ⌘ + Click | | View Structure | Open table structure in detail view | ⌥ + Click | | Generate SELECT | Create basic SELECT query for this table | | | Generate INSERT | Create INSERT template | | | Export Data | Export table to CSV/JSON | ⌘ + E | | Refresh | Update table information | ⌘ + R |

Understanding Views

View vs Table

Views appear similar to tables but are virtual objects based on SQL queries:

  • Regular Views: Stored query definitions
  • Materialized Views: Pre-computed results (cached)

View Information

Click any view to see:

  • Definition: The SQL query that defines the view
  • Columns: Result set structure
  • Dependencies: Tables and views this view depends on

Working with Large Databases

Filtering and Searching

When dealing with many objects, use these features:

Quick Filter

  1. Click in the search box at the top of the sidebar
  2. Type object name to filter in real-time
  3. Use wildcards: *users* finds all objects with "users" in the name

Advanced Search

  • Scope search: Limit to tables, views, or all objects
  • Case-sensitive toggle: Match exact casing
  • Regex support: Use regular expressions for complex patterns

Favorite Objects

Mark frequently accessed objects for quick retrieval:

  1. Right-click any object
  2. Select "Add to Favorites"
  3. Access favorites from the Favorites sidebar section

Examining Relationships

Visualizing Table Relationships

HarborDB helps you understand how tables connect:

Foreign Key Visualization

  1. Right-click any table with foreign keys
  2. Select "Show Relationships"
  3. View graphical representation of connections

Dependency Analysis

  • See what depends on this table
  • Identify circular references
  • Understand impact of schema changes

Relationship Browser

For complex databases, use the Relationship Browser:

  1. Open Tools menu → Relationship Browser
  2. Select starting table
  3. Explore connections visually
  4. Export relationship diagram for documentation

Practical Navigation Examples

Example 1: Exploring a New Database

When connecting to an unfamiliar database:

  1. Check database size (right-click database → Properties)
  2. List all schemas and identify the main ones
  3. Review table counts in each schema
  4. Examine largest tables (sort by row count or size)
  5. Look for documentation tables (often named: docs, documentation, readme)

Example 2: Finding Specific Data

When you need to locate customer information:

  1. Search for tables containing "customer", "user", or "client"
  2. Examine likely tables for relevant columns
  3. Check foreign keys to find related data
  4. Use Data Preview to sample actual data

Example 3: Understanding Application Structure

To understand how an application organizes data:

  1. Group tables by prefix (e.g., app_, auth_, report_)
  2. Examine naming conventions
  3. Look for foreign key patterns
  4. Identify lookup/reference tables

Keyboard Shortcuts for Navigation

Master these shortcuts for efficient navigation:

| Shortcut | Action | | ----------- | ------------------------------- | | ⌘ + B | Toggle sidebar visibility | | ⌘ + F | Focus search in sidebar | | ⌘ + G | Find next in search results | | ⌥ + Click | Open object in new tab | | ⌘ + Click | Open SELECT query for table | | ⌘ + R | Refresh current view | | ⌘ + . | Clear search/filter | | ⌘ + 1-9 | Switch between sidebar sections |

Navigation Best Practices

Organization Tips

  1. Use meaningful connection names: Include environment (Dev, Prod) and purpose
  2. Group related connections: Local dev, staging, production
  3. Color-code by environment: Green for dev, yellow for staging, red for prod
  4. Create connection templates: For similar database setups

Performance Considerations

  1. Limit auto-expansion: Don't expand everything at once
  2. Use search instead of browsing for large databases
  3. Close unused connections to free resources
  4. Clear cache periodically for very large schemas

Security Practices

  1. Use connection-specific credentials when possible
  2. Limit schema visibility with appropriate permissions
  3. Avoid saving production passwords in less secure environments
  4. Regularly audit connection usage

Troubleshooting Navigation Issues

"Object Not Found" Errors

If you can't see expected objects:

  1. Refresh the connection (right-click → Refresh)
  2. Check your permissions on the database
  3. Verify you're in the correct schema
  4. Confirm object hasn't been renamed or dropped

Slow Navigation Performance

For sluggish response:

  1. Reduce auto-expansion depth in Preferences
  2. Disable thumbnail previews for large tables
  3. Increase query timeout for remote connections
  4. Use search instead of tree expansion

Missing Relationships

If foreign keys aren't showing:

  1. Check if foreign keys are properly defined in PostgreSQL
  2. Verify you have permissions to view constraint information
  3. Refresh table metadata
  4. Check for deferred constraint checking

Advanced Navigation Features

Custom Queries for Exploration

Create saved queries for complex exploration:

-- Find all tables with specific column
SELECT
    table_schema,
    table_name,
    column_name,
    data_type
FROM information_schema.columns
WHERE column_name ILIKE '%email%'
ORDER BY table_schema, table_name;

-- List largest tables
SELECT
    schemaname,
    tablename,
    pg_size_pretty(pg_total_relation_size(schemaname || '.' || tablename)) as size
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_total_relation_size(schemaname || '.' || tablename) DESC
LIMIT 20;

Bookmarking Common Paths

Save frequently accessed navigation paths:

  1. Navigate to your target object
  2. Click Bookmark button in toolbar
  3. Name the bookmark (e.g., "Customer Analytics Tables")
  4. Access bookmarks from Bookmarks menu

Exporting Database Structure

Document your database structure:

  1. Select objects in sidebar
  2. Right-click → Export Structure
  3. Choose format: SQL, Markdown, or HTML
  4. Include options: With data, constraints, indexes

Next Steps

Now that you can navigate databases effectively:

  1. Query Basics - Learn to write and execute SQL queries
  2. Exporting Data - Save results to CSV or JSON
  3. Performance Optimization - Optimize your database workflow

Getting Help

If you encounter navigation issues:

  1. Check our Support Guide for troubleshooting
  2. Visit the FAQ for common questions
  3. Contact Support for personalized assistance

Was this helpful?

Help us improve this documentation by providing feedback.