views:

312

answers:

9

As above. Usually at work someone else does the database design, and when I do personal projects they're small enough to not really require more than five or six tables, but I'm about to start a personal project that I think will probably require around eleven or twelve tables and I'd like something to help me design it neatly and keep track of it.

+4  A: 

MySQL Workbench, while a little buggy, has been invaluable to me since I discovered it.

Visio has a good visual database designer, but it can't export the result to a MySQL database and is windows only.

phpMyAdmin also has a designer tool which can be used if you correctly configure the pma database.

Shabbyrobe
A: 

I can't use MySQL Workbench as apparently it requires .NET 2.0, which will not install on my computer for love nor money.

franzferdinand
Will it run using .NET 3.5 framework?
Shabbyrobe
I can't upgrade at all from 1.0 :(
franzferdinand
+1  A: 

I have used quite a number and reviewed and linked them. Now though i am a Sqlyog fan through and through, i am going to have to agree with Shabbyrobe above and say Mysql Workbench it gives a nice clear easy to use graphical user interface that allows you to do both your ERM and sql script at the same time. It does have the same short coming as Sqlyog in that for the really fun stuff, you need to pay.

jake
+3  A: 

mysql combined with notepad (and pencil)

I'm serious here folks. Unless you can program raw Sql, you don't understand databases.

By the time I'm ready to program the database, I have a good idea what I want to put into it. I write the declarations into the editor (I use something a bit more powerful than notepad, but notepad is sufficient.), then cut-and-paste them into the mysql prompt. If there is an error, I fix up either the command line, or the text file, then update the other. Frequent saves are warranted.

The beauty of this method is that the text file serves as both design documentation and a template to recreate the database.

dar7yl
Definitely this is the way to go.
Mark Baker
for the very first attempts of creating a database layout i'd second your answer, but why keep doing it the "old and slow" way over and over if there are much faster methods?
Karsten
+1  A: 

Hi franzferdinand,

Try SchemaBank, a web-based one, nothing to install on your machines. I believe they have free accounts available.

Edison
+1  A: 

Navicat is by far the best MySQL admin tool out there..
Desktop based, but you have a "tunnel" php file to connect to your servers that don't allow remote mysql connections.
www.navicat.com , not free but so great ! (works also for Oracle and PostGre)

netsuo
A: 

Perhaps it is possible to take a different approach and design the domain objects for your application, and let the database be created for you.

This design pattern is called "data persistence" and there are several tools people use, like Hibernate (or NHibernate, being the .net alternative), or xpodatasource to name a few. With data persistence, you are motivated to design, declare or even draw the objects that you need (book, concert, project, user), with the relationships they have, for the application at hand. A database and its tables can be generated for you, up to indexes and all.

It may be a tough nut to crack at first, but it may aid you in your everyday needs.

Sorry if this is not a solution to your question though. Google for a tut on hibernate. I am still grateful for the person who got me hooked up with data persistence in general.

Martin Kool
A: 

MySQL Workbench is available on MacOS, Fedora, Ubuntu, Windows.

WB 5.1 is focused on Data Modeling (replacing Mike Zinner’s popular DBDesigner product).

WB 5.2 (coming April 2009) will include a ground up rewrite of the MySQL Query Browser.

http://forums.mysql.com/index.php?151

A: 

You can also use ORM Designer for designing your model. And if you use any of ORM framework supported by ORM Designer (Propel,Doctrine,CakePHP,...), you can then export your model to schema definition file.

http://www.orm-designer.com

Ludek Vodicka