DbSchema Features for Team Design & Database Management

DbSchema combines visual database design, ER diagrams, schema documentation, data exploration, SQL editing, and deployment workflows in one desktop app for 70+ SQL and NoSQL databases.

See DbSchema in Action

Connect to 70+ SQL and NoSQL Databases

Connect to cloud, on-premise, or remote databases through JDBC, reverse engineer existing schemas, and keep one design model you can document, compare, and share.

access
amazonathena
apachedrill
apacheignite
apachepinot
auroramysql
aurorapostgresql
azuresynapse
cache
cassandra
clickhouse
cockroach
postgresql
mysql
sqlserver
oracle
mariadb
sqlite
mongodb
redis
cassandra
clickhouse
elasticsearch
duckdb
snowflake
googlebigquery
redshift
databricks
azuresql
saphana
auroramysql
aurorapostgresql
db2
teradata
vertica
greenplum

Visual Database Design and ER Diagrams

Model new databases, import DDL, and move from logical design to physical deployment without losing clarity.

Interactive Diagrams
Design the Database Schema using Interactive Diagrams

✓ Build ER diagrams visually and see tables, keys, and relationships in context.

✓ Break large systems into focused diagrams that stay easy to navigate.

Learn more about Diagrams

Logical and Physical Design
Logical & Physical Design

✓ Start with a database-agnostic model, then transform it into a physical schema for your target platform.

✓ Keep one source of truth even when deploying across different database engines.

Learn more about Logical Design

Import DDL Scripts
Import DDL Scripts

✓ Import SQL DDL into DbSchema and turn existing scripts into living diagrams.

✓ Update the model visually, then export refined SQL when you are ready.

Learn more about DDL Import

Built for Large, Secure, Team-Based Databases

DbSchema for large, secure database teams

Handle very large schemas, connect securely over SSL/TLS or SSH, and keep teams aligned with Git-based collaboration and shared documentation.

Large Databases

✓ Navigate very large schemas, even when thousands of tables are involved.

✓ Use grouping, auto-arrange, and focused diagrams to stay productive at scale.

Learn more about Diagrams

Highly Secure
Design Databases Secure

✓ Connect over SSL/TLS or SSH tunnels when databases live behind firewalls.

✓ Keep your model on your machine so teams can collaborate without exposing live data.

Read about Secure Connections

Built for Teams
Design database schema in a team

✓ Review schema diffs in Git and collaborate in familiar branches and pull-request workflows.

✓ Share HTML/PDF docs so developers, analysts, and stakeholders work from the same model.

See Git Workflow

Documentation and Team Collaboration

U { } [ ] Read column and table comments by hovering the columns and tables. Zoom with CTRL+whell mouse button, pan by dragging the diagram with the right-mouse button DbSchema Database Designer MySQL Diagram Read schema comments as mouse-over tooltips DbSchema.com © 2026 Wise CodersDbSchema is an universal database designer. DbSchema has a free Community Edition. Group_ Group_ 🔗 Foreign Key fk_orders_customers orders ref customers ( customer_id ) 🔗 Foreign Key fk_orders_customers orders ref customers ( customer_id ) fk_orders_customers 🔗 Foreign Key fk_reviews_customers reviews ref customers ( customer_id ) 🔗 Foreign Key fk_reviews_customers reviews ref customers ( customer_id ) fk_reviews_customers 🔗 Foreign Key fk_reviews_sales reviews ref sales ( customer_id ) 🔗 Foreign Key fk_reviews_sales reviews ref sales ( customer_id ) fk_reviews_sales 🔗 Foreign Key fk_employees_employee_benefits employees ref employee_benefits ( employee_id ) 🔗 Foreign Key fk_employees_employee_benefits employees ref employee_benefits ( employee_id ) fk_employees_employee_benefits 🔗 Foreign Key fk_employees_salaries employees ref salaries ( salary ) 🔗 Foreign Key fk_employees_salaries employees ref salaries ( salary ) fk_employees_salaries ordersTable company.orders 🔑 Pk pk_orders ( order_id ) order_id⧉ order_id * int ↙ order_items( order_id ) ↙ transactions( order_id ) INT🔗 Referred by order_items ( order_id ) Referred by transactions ( order_id ) customer_id⧉ customer_id int ↗ customers( customer_id ) INT🔗 References customers ( customer_id ) order_date⧉ order_date date DATE total_amount⧉ total_amount decimal(15,2) DECIMAL(15,2) status⧉ status varchar(50) VARCHAR(50) shipping_address⧉ shipping_address varchar(255) VARCHAR(255) salesTable company.sales 🔑 Pk pk_sales ( sales_id ) sales_id⧉ sales_id * int INT price⧉ price decimal(10,0) DECIMAL(10,0) discount⧉ discount decimal(10,0) DECIMAL(10,0) 🔍 fk_sales_customers ( customer_id ) customer_id⧉ customer_id int ↗ customers( customer_id ) ↙ reviews( customer_id ) INT🔗 References customers ( customer_id ) Referred by reviews ( customer_id ) reviewsTable company.reviews 🔑 Pk pk_reviews ( review_id ) review_id⧉ review_id * int INT 🔍 Unq unq_reviews_product_id ( product_id ) product_id⧉ product_id int INT 🔍 fk_reviews_customers ( customer_id ) customer_id⧉ customer_id int ↗ customers( customer_id ) ↗ sales( customer_id ) INT🔗 References customers ( customer_id ) References sales ( customer_id ) rating⧉ rating int INT review_date⧉ review_date date DATE comments⧉ comments text TEXT employee_benefitsTable company.employee_benefits 🔑 Pk pk_employee_benefits ( benefit_id ) benefit_id⧉ benefit_id * int INT 🔍 Unq unq_employee_benefits_employee_id ( employee_id ) employee_id⧉ employee_id int ↙ employees( employee_id ) INT🔗 Referred by employees ( employee_id ) benefit_type⧉ benefit_type varchar(50) VARCHAR(50) start_date⧉ start_date date DATE end_date⧉ end_date date DATE employee_projectsTable company.employee_projects 🔑 Pk pk_employee_projects ( employee_id, project_id ) employee_id⧉ employee_id * int INT 🔑 Pk pk_employee_projects ( employee_id, project_id ) 🔍 Unq unq_employee_projects_project_id ( project_id ) project_id⧉ project_id * int ↙ employees( employee_id ) ↙ projects( project_id ) INT🔗 Referred by employees ( employee_id -> project_id ) Referred by projects ( project_id ) role⧉ role varchar(100) VARCHAR(100) start_date⧉ start_date date DATE end_date⧉ end_date date DATE customersTable company.customers 🔑 Pk pk_customers ( customer_id ) customer_id⧉ customer_id * int ↙ orders( customer_id ) ↙ payment_methods( customer_id ) ↙ reviews( customer_id ) ↙ salaries( salary_id ) ↙ sales( customer_id ) INT🔗 Referred by orders ( customer_id ) Referred by payment_methods ( customer_id ) Referred by reviews ( customer_id ) Referred by salaries ( salary_id -> customer_id ) Referred by sales ( customer_id ) first_name⧉ first_name varchar(50) VARCHAR(50) last_name⧉ last_name varchar(50) VARCHAR(50) email⧉ email varchar(100) VARCHAR(100) phone_number⧉ phone_number varchar(20) VARCHAR(20) address⧉ address varchar(255) VARCHAR(255) registration_date⧉ registration_date date DATE employeesTable company.employees ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ This field contains personal informations 🔑 Pk pk_employees ( employee_id ) employee_id⧉ employee_id * int ↗ employee_benefits( employee_id ) ↗ employee_projects( project_id ) ↙ attendance( employee_id ) INT🔗 References employee_benefits ( employee_id ) References employee_projects ( employee_id -> project_id ) Referred by attendance ( employee_id ) 🔍 Unq unq_employees_first_name ( first_name ) first_name⧉ first_name varchar(50) VARCHAR(50) last_name⧉ last_name varchar(50) VARCHAR(50) email⧉ email varchar(100) VARCHAR(100) hire_date⧉ hire_date date DATE 🔍 Unq unq_employees_salary ( salary ) salary⧉ salary decimal(10,2) ↗ salaries( salary ) ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ This column contains personal informations. DECIMAL(10,2)🔗 References salaries ( salary ) department_id⧉ department_id int INT manager_id⧉ manager_id int INT salariesTable company.salaries 🔑 Pk pk_salaries ( salary_id ) salary_id⧉ salary_id * int ↗ customers( customer_id ) ↗ payment_methods( payment_method_id ) INT🔗 References customers ( salary_id -> customer_id ) References payment_methods ( salary_id -> payment_method_id ) 🔍 Unq unq_salaries_employee_id ( employee_id ) employee_id⧉ employee_id int INT 🔍 Unq unq_salaries_salary ( salary ) salary⧉ salary decimal(10,2) ↙ employees( salary ) DECIMAL(10,2)🔗 Referred by employees ( salary ) 🔍 Unq unq_salaries_effective_date ( effective_date ) effective_date⧉ effective_date date ↙ contracts( start_date ) DATE🔗 Referred by contracts ( start_date -> effective_date ) bonus⧉ bonus decimal(10,2) DECIMAL(10,2) 🔍 Unq unq_salaries_customer_id ( customer_id ) customer_id⧉ customer_id int INT

Publish interactive schema documentation, track changes in Git, and share the same database model across your team.

Schema Documentation
Generate HTML5 database schema documentation

✓ Generate HTML5 documentation with diagrams, tables, columns, and comments in one package.

✓ Open it in any browser so teammates can browse the model without installing DbSchema.

Learn more about Documentation

Git Integration
Share the database design in team using GIT

✓ Commit and push schema changes directly from DbSchema.

✓ Review differences between branches and keep the design model in sync with your workflow.

Learn more about Git Integration

Floating License Server
Share licenses in team using Floating License Server

✓ Share floating seats across your network when client machines have restricted internet access.

✓ Let more team members install DbSchema while only active users consume licenses.

Learn more about Floating Licensing

Explore Data, Write SQL, and Build Queries Faster

Explore data and build SQL queries across SQL and NoSQL databases
Browse Data Visually
Open tables and explore rows without writing SQL.

Browse related records, edit data inline, write SQL with assistance, or build queries visually when you want a faster start.

Explore Related Data

✓ Browse and edit tables with filters, sorting, and inline updates.

✓ Follow foreign keys and virtual keys through multi-level master-detail views.

Learn more about Data Explorer

SQL Editor
Edit and execute SQL Queries

✓ Write and run SQL with autocomplete, syntax highlighting, and script execution.

✓ Edit results inline and export data to CSV, Excel, or JSON.

Learn more about SQL Editor

Build Queries Visually
Visually build queries using the Query Builder

✓ Build queries visually with drag-and-drop tables, joins, columns, and conditions.

✓ Preview the generated SQL and run it immediately to verify results.

Learn more about Query Builder

Compare Schemas and Deploy Changes Safely

Compare and Synchronize the Design Model with the Database
Exists in the Model
Missing in the Database

Review differences before you deploy, update either side intentionally, and generate SQL migration scripts when you need a controlled release.

Schema Compare & Deploy
Compare and Synchronize the Design Model with the Database

✓ Compare the design model with live databases before making changes.

✓ Push changes to the database or update the model after reviewing each difference.

Learn more about Schema Sync

Development → Test → Production
Design the Database Schema, Test it and Delploy it into Production

✓ Move schema changes from development to test to production with a clear review step.

✓ Keep SQL diffs and rollback options visible before you apply changes.

Learn more about Deployment Workflows

Generate Migration Scripts
Generate Database Schema Migration Scripts

✓ Generate SQL migration scripts between model versions or environments.

✓ Review database-specific SQL before applying changes to another engine or stage.

Learn more about Migration Scripts

Automation, Test Data, and Database Administration

Execute Automation Scripts using DbSchema
Advanced Tools
Generate test data, automate tasks, and manage your DB

Turn on advanced tools only when you need them - generate realistic test data, automate recurring jobs, and monitor database operations without leaving the DbSchema ecosystem.

Generate Test Data
Generate Test Data

✓ Populate tables with realistic sample data for development, QA, and demos.

✓ Reuse patterns, regex rules, and saved generators across projects.

Learn more about Test Data

Automate with Scripts
Automate with Scripts

✓ Run Groovy scripts to automate repeatable database or documentation tasks.

✓ Generate docs, import/export data, and schedule recurring jobs from reusable scripts.

Learn more about Automation Scripts

Monitor Database Operations
Monitor database operations

✓ Monitor disk usage, sessions, locks, and other operational signals across environments.

✓ Use DbSchemaCLI for team-wide monitoring, alerts, and repeatable administration workflows.

Explore DbSchemaCLI

Now with AI Assistant

Use the AI Assistant to understand schemas faster, generate SQL, and speed up documentation and everyday database work.

See Release Notes

DbSchema AI assistant for database design and SQL work