Question

I am doing a project in the university and it includes a MySQL database. I have a design for the database in terms of a list of tables and their respective fields.

In what form should I present this design? Just the list of tables and content? In an ERD? How do you present your designs?

To clarify - whatever you answer, I expect not only specification of how you present your design, but also which tools do you use the create the diagrams/list/tables etc.

Was it helpful?

Solution

ERD is the only way to go. As they say, a picture is worth a thousand words.

But don't try to put the whole database on one diagram. It will, in all but the most trivial cases, be overwhelming to your audience to try to digest the entire database design in one go. Instead, break the diagrams into subject areas depicting only the most relevant tables in each diagram. For example, a point-of-sale system might have separate diagrams for Inventory, Sales, Accounting, Customer Management, Security, Auditing, and Reporting. Some tables will show up in more than one subject area -- this is to be expected.

As far as tooling, nothing beats ErWin, but it is really expensive and only available for Windows. Visio is ubiquitous in a corporate environment, but is only available on Windows and is not exactly cheap either. Macs offer some really nice diagramming tools; most of them are not free.

Dia is a decent, free, and cross-platform diagramming tool. It is a bit quirky, though; and I have not had much success making the diagrams look as nice I want them to look.

For MySQL, I have played with fabFORCE dbDesigner and it is not bad, but I did find its support for multiple subject areas to be a bit lacking at the time -- perhaps they've improved it since. But it is free and works on Windows and Linux.

For the actual presentation, I create images from these diagramming tools and pull them into presentation software (PowerPoint, KeyNote, or OpenOffice Impress). These presentations can be exported to PDF and distributed to the audience; they won't need anything more than a PDF viewer to review the information later.

OTHER TIPS

Let's look at this from your professor's perspective. If I were him/her:

I would require an ERD. Without it, I cannot see one of the most fundamental issues of a database design, how are the tables related.

I would also expect some basic use cases/ requirements. What problems are you trying to solve with this database design?

I would want to see what indexes are in place, especiall on the foreign key columns. I would want to see expected row counts in all tables to determine if indexes are even required.

I would want to see column data types to determine if they meet the requirements. I would want to see what columns accept NULL values, since that often can cause problems if you're not careful.

If I were using SQL Server, I would probably create a diagram in SSMS to display a somewhat basic ERD. Visio can be used as well. I might use Visio to create my use cases, or perhaps Microsoft Word.

mysql workbench will make you pretty graphics for presentation amongst other many sophisticated features.

Depends on the audience. ERD certainly isn't the only answer and may not be the best. You should choose a medium that your audience will understand.

Don't forget to discuss design aspects that can't fit to ERD:

1) how inheritance/aggregation relationships from your analytical model implemented in your db.

2) how you are going to support hierarchies of your objects in the rdb (if you have any)

3) list relationships that are in your analytical model but are not supported by the rdb design.

4) ETL process, track changes, track schema changes, security based on resource.

5) storage partitioning and maintenance aspects (one of the goal optimize backup time)

6) in prod test (test island data) and easy cloning db for test environment

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top