Most Website are doing some database read/writes. For professional business, the best but most expensive database is Oracle. All others are using mySql. Therefore, mySql intends to be one of the fastest READ databases. This is perfect for web applications where read access is done most of the time.
But none of us likes to write all DDL (data definition language) statements by hand. SQL ist great, but I'd like to model my application. So I'd like to visually draw my tables and foreign keys! After that my tables and key should be generated to the mySql database.
There are many graphical modelling tools available. Some are good, some are kind of complicated, some are expensive and others not. Anyway, I really can recommend mySql Workbench! It's from mySql development itself and I think it's free of charge for private use.
Here you can model tables, columns, indexes, foreign keys, db triggers, database partitions and also some default insert into the tables.
The visual/graphical modelling is very easy. Just drag and drop your objects (tables, foreign key relations, ...).The mySql Workbench help system is also very good. For example the creation of a foreign key requires a primary key column on both tables: ".... an identifying relationship is one where the child table cannot be uniquely identified without its parent. Typically this occurs where an intermediary table is created to resolve a many-to-many relationship. In such cases, the primary key is usually a composite key made up of the primary keys from the two original tables. An identifying relationship is indicated by a solid line between the tables and a nonidentifying relationship is indicated by a broken line. Create or drag and drop the tables that you wish to connect. Ensure that there is a primary key in the table that will be on the “one” side of the relationship. Click on the appropriate tool for the type of relationship you wish to create. If you are creating a one-to-many relationship first click on the table that is on the “many” side of the relationship and then on the table containing the referenced key ..."
Many other documentation and help can be found on the web. You're not alone with mySql!
Model based visual database design for mySql:
mysql_workbench_datasheet_de.pdf (pdf!) (written in german language)