Skip to content

Engineering

Engineering dbdiagram

Designing Relational Databases Visually with dbdiagram.io

When planning a relational database, the hardest part isn’t writing SQL—it’s designing the schema. Tables, relationships, primary/foreign keys… it’s easy to lose track of how everything connects. That’s where dbdiagram.io shines.

🧩 What is dbdiagram.io?

dbdiagram.io is a free, web-based tool for designing and visualizing relational databases. Instead of manually drawing ERDs or keeping schemas in your head, you can quickly build diagrams that represent your database structure—visually and with code.


✨ Why Use It?

  • Visual-first: See your tables and relationships laid out clearly
  • Fast to write: Uses a simple DSL (Domain-Specific Language) to define tables
  • Shareable: Easy to share links or export diagrams for documentation
  • Import/Export: Works with PostgreSQL, MySQL, SQL Server, and more
  • Great for collaboration: Perfect for design discussions or onboarding new devs

⚙️ How It Works

Here’s a quick example:

Table users {
  id int [pk]
  name varchar
  email varchar
}

Table posts {
  id int [pk]
  user_id int [ref: > users.id]
  title varchar
  content text
}

This defines two tables (users and posts) with a one-to-many relationship.

The UI then auto-generates a clean, interactive diagram.


📥 Import from SQL

Already have a schema? Paste your SQL directly, and dbdiagram will parse it for you. Supported dialects include:

  • PostgreSQL
  • MySQL
  • SQLite
  • SQL Server

📤 Export Options

You can export your diagrams as:

  • SQL files (for running in a DB)
  • PNG/SVG images (for documentation)
  • PDF (for reports or specs)

🌐 Use Cases

  • Prototyping database designs quickly
  • Documenting existing databases visually
  • Teaching or learning database design
  • Improving dev–design–stakeholder collaboration

🧠 Final Thoughts

dbdiagram.io is a simple yet powerful tool to bring clarity to your database designs. Whether you're sketching a new schema or trying to understand an existing one, it's a must-have for any backend dev or data engineer.

Give it a spin at dbdiagram.io and see your databases come to life.

How to Estimate Projects Effectively

The Problem

During my experience working with consulting companies in the IT tech industry, project estimation has always been a rough task. Whether it's a new development, a migration, or a modernization effort, determining the time and effort required is never straightforward. There are many challenges, including incomplete requirements, unknowns, and even misaligned expectations between clients and engineering teams.

Advice & Considerations

1. Don't Reinvent the Wheel

One of the biggest mistakes in estimation is failing to acknowledge what has already been developed. Before jumping into a solution, take the time to assess existing frameworks, libraries, or tools that could speed up the process. Reusability can significantly reduce effort and risk.

2. Take Your Time Understanding the Problem

Gathering all the requirements is crucial. Sometimes, teams rush into estimations without fully understanding the scope of the work. This often results in underestimating or overestimating tasks. Ask the right questions, clarify any ambiguities, and ensure all stakeholders are aligned before finalizing an estimate.

3. Challenge Requests When Necessary

Many times, we are asked to implement solutions that may not be ideal due to a lack of knowledge from the requester. It’s essential to understand the real needs behind a request and provide insights or alternative approaches when necessary. While the final decision is on the client, you should always express your thoughts and ensure technical feasibility and best practices are followed.

4. Identify Assumptions & Unknowns

There will always be assumptions and unknowns in any estimation. Clearly document them so that any potential risks are highlighted early. If possible, assign buffers to account for uncertainties, and update estimates as more information becomes available.

5. Remove Unnecessary Layers of Communication

Often, information is gathered from secondary sources, acting as proxies between the original client and the engineering team. This can lead to misinterpretations and missing context. Whenever possible, reduce the number of intermediaries and obtain information directly from the source.

6. Compare & Learn from Past Estimations

One of the best ways to improve estimation skills is by continuously learning from past experiences. Compare your estimated efforts against the actual time spent, identify gaps, and refine your estimation process accordingly. Understanding previous mistakes and missing elements can help fine-tune future estimates.

7. Seek Client Feedback

Engaging with the client for feedback can provide valuable insights into the accuracy of your estimates. If possible, ask for feedback at various stages of the project to ensure expectations are met and to adjust estimations for similar projects in the future.

Conclusion

Project estimation is a challenging but essential skill in IT consulting. By considering existing solutions, fully understanding the problem, questioning requests when necessary, and learning from past projects, you can significantly improve your ability to provide accurate and realistic estimates. Remember, estimation is not just about guessing numbers—it’s about applying knowledge, experience, and critical thinking to create reliable plans.