I'm tired of opening Dia and creating a database diagram at the beginning of every project. Is there a tool out there that will let me select specific tables and then create a database diagram for me based on a MySQL database? Preferably it would allow me to edit the diagram afterward since none of the foreign keys are set...

Here is what I am picturing diagram-wise (please excuse the horrible data design, I didn't design it. Let's focus on the diagram concept and not on the actual data it represents for this example ;) ):

diagram see full size diagram

+1  A: 

I believe DB Designer does something like that. And I think they even have a free version.

edit Never mind. Michael's link is much better.

Mark Biek
+18  A: 

Try MySQL Workbench, formally DBDesigner 4:

This has a "Reverse Engineer Database" mode as far as I remember,

Michael Stum
Takes "7 days or longer" to be approved for the download...? :/
@James: Still works fine, click on Download Workbench 5.2.16 (upper right corner), then on "No Thanks, just take me to the downloads" and it should work - at least for Windows, haven't tried any other platform.
Michael Stum
+1  A: 

The "Reverse Engineer Database" mode in Workbench in only part of the paid version not the free one.

John Downey
+1  A: 

@John Downey

With the Free version, you can still generate the schema and diagrams by importing a mysqldump.

Mark Biek
+5  A: 

On a Mac, SQLEditor will do what you want.

This is an excellent tool, thanks.
Philip Morton
+2  A: 

This will reverse engineer your database. Just do an export 'structure only' then paste the SQL into the tool.

+1  A: 

Try SchemaBank. They support reverse engineering too.

Leigh Pyle

Hello, I'm interested in similar tool for reverse engineering, but for MSSQL database. Can you help me finding something like this.

This is a question, not an answer.