Database Navigation in HarborDB
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:
- Tree View (Default): Hierarchical expansion of objects
- 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:
- Expand your connection in the sidebar
- Click "Databases" to see the list
- 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
- Expand a database to see its schemas
- 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
- Click in the search box at the top of the sidebar
- Type object name to filter in real-time
- 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:
- Right-click any object
- Select "Add to Favorites"
- Access favorites from the Favorites sidebar section
Examining Relationships
Visualizing Table Relationships
HarborDB helps you understand how tables connect:
Foreign Key Visualization
- Right-click any table with foreign keys
- Select "Show Relationships"
- 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:
- Open Tools menu → Relationship Browser
- Select starting table
- Explore connections visually
- Export relationship diagram for documentation
Practical Navigation Examples
Example 1: Exploring a New Database
When connecting to an unfamiliar database:
- Check database size (right-click database → Properties)
- List all schemas and identify the main ones
- Review table counts in each schema
- Examine largest tables (sort by row count or size)
- Look for documentation tables (often named: docs, documentation, readme)
Example 2: Finding Specific Data
When you need to locate customer information:
- Search for tables containing "customer", "user", or "client"
- Examine likely tables for relevant columns
- Check foreign keys to find related data
- Use Data Preview to sample actual data
Example 3: Understanding Application Structure
To understand how an application organizes data:
- Group tables by prefix (e.g.,
app_,auth_,report_) - Examine naming conventions
- Look for foreign key patterns
- 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
- Use meaningful connection names: Include environment (Dev, Prod) and purpose
- Group related connections: Local dev, staging, production
- Color-code by environment: Green for dev, yellow for staging, red for prod
- Create connection templates: For similar database setups
Performance Considerations
- Limit auto-expansion: Don't expand everything at once
- Use search instead of browsing for large databases
- Close unused connections to free resources
- Clear cache periodically for very large schemas
Security Practices
- Use connection-specific credentials when possible
- Limit schema visibility with appropriate permissions
- Avoid saving production passwords in less secure environments
- Regularly audit connection usage
Troubleshooting Navigation Issues
"Object Not Found" Errors
If you can't see expected objects:
- Refresh the connection (right-click → Refresh)
- Check your permissions on the database
- Verify you're in the correct schema
- Confirm object hasn't been renamed or dropped
Slow Navigation Performance
For sluggish response:
- Reduce auto-expansion depth in Preferences
- Disable thumbnail previews for large tables
- Increase query timeout for remote connections
- Use search instead of tree expansion
Missing Relationships
If foreign keys aren't showing:
- Check if foreign keys are properly defined in PostgreSQL
- Verify you have permissions to view constraint information
- Refresh table metadata
- 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:
- Navigate to your target object
- Click Bookmark button in toolbar
- Name the bookmark (e.g., "Customer Analytics Tables")
- Access bookmarks from Bookmarks menu
Exporting Database Structure
Document your database structure:
- Select objects in sidebar
- Right-click → Export Structure
- Choose format: SQL, Markdown, or HTML
- Include options: With data, constraints, indexes
Next Steps
Now that you can navigate databases effectively:
- Query Basics - Learn to write and execute SQL queries
- Exporting Data - Save results to CSV or JSON
- Performance Optimization - Optimize your database workflow
Getting Help
If you encounter navigation issues:
- Check our Support Guide for troubleshooting
- Visit the FAQ for common questions
- Contact Support for personalized assistance
Was this helpful?
Help us improve this documentation by providing feedback.