• A good database design starts with a list of the data that you want to include in your database and what you want to be able to do with the database later on. This can all be written in your own language, without any SQL. In this stage you must try not to think in tables or columns, but just think: "What do I need to know?" Don't take this too lightly, because if you find out later that you forgot something, usually you need to start all over. Adding things to your database is mostly a lot of work.

    There are a lot of tools that can help you:

    Archi 
    A free and open source visual modelling and design tool, Archi is used to create models and modelling sketches. By providing an open source reference implementation of ArchiMate, Archi is presently one of the tools used to implement the Open Group ArchiMate Model Exchange File Format.
    Price: Free

    PowerDesigner

    PowerDesigner is arguably the industry’s leading data modelling tool. Its features include: fully integrated models, different modelling techniques that cater to both an IT-centric audience and non IT-centric. It also supports a powerful metadata repository and various output formats. It has a nice and polished user interface with easily readable help documentation aiding the user to quickly solve ad hoc problems.

    Price: $2,000

    SQLDbm

    • Pricing: Free
    • Forward engineering: Use SQLDBM to create a physical model or ERD of your database
    • Reverse engineering: Use the reverse engineering feature to export your database schema as a SQL script

    Features:

    • Create database objects like tables, objects, relationships, indexes, quickly and intuitively
    • Alter and edit database objects inline in your diagram
    • Copy or Move columns across tables
    • Zoom in and out of diagrams
    • On-the- spot design anywhere on any browser

    Price: Free