With spring in the air we decided to go back to our roots and focus on a very fundamental topic – Entity Relationship Diagrams, or ERD’s. This simple, yet very important, document gives developers a snapshot view of a database. It illustrates at a glance all the tables, fields and relationships involved in a database. It can also serve as an excellent tool for troubleshooting issues.
What it is – An ERD is at its simplest a standardized, drawn out, map of your database. Tables that have relationships with each other have lines drawn to each other with different notations like crows feet or open circles used to indicate what type of relationships those tables are in. Is it a many-to-many or one-to-many relationship? With a proper ERD all you have to do is look at it to find out.
Why have one – Having an ERD will make your life and the lives of anyone else who is working on the database with you that much easier. For anyone who might be new to a project, it will help them jump right in. For people who are working on multiple projects it’ll help them jump back into it after working on something else for a while. If you are the lead developer, having an ERD handy will make it easier for you to explain to the other members of your team how and why you did certain things. In all cases it helps bridge the gap between the virtual and the real.
The main thing to remember as FileMaker developers is that an ERD does not necessarily match up to the “Manage Database” view that FileMaker offers. FileMaker offers a very visual way of displaying tables and relationships that displays like you would imagine an ERD would look like. However what FileMaker shows are table occurrences, not actual tables; which means things can get very messy very easily depending on how you organize your table occurrences. This is the main reason its useful to have an ERD as a FileMaker developer; the ERD will almost always be simpler and more easy to read. By having a proper and up to date ERD of your solution you can stay on top of your development and ease the chains of communications between team members and clients.