Three reasons why I like Crow’s Foot Notation for Enterprise Relationship Diagrams (ERDs).

First a little background and some links on Crow’s Foot Notation.  This link gives some great examples and some history Crow’s Feet Are Best.  All of this brings back great memories of my database design class at the University of Minnesota while learning about Peter Chen and Clive Finkelstein.

Here are the basic terms that make Crow’s Foot Notation work…
Entity – The object whose relationships are being described.  Entities are labeled in the singular, not the plural.
Relationship – The lines between the Entities mark the relationships.  A verb can also be placed on the line to help describe the relationship between the two entities.  For example between two entities that are a ‘Student’ and a ‘Course’ the verb could be ‘takes a’ so we end up with a sentence like ‘Student takes a Course.’
Cardinality – The mark closest to the Entity which represents the maximum value.  As in the link above Cardinality can also be described as both the minimum and maximum values.
Modality – The mark on the line that is not closest to the Entity is the minimum value

Here are two other links that I have liked for describing Crow’s Foot Notation.
1) Crow’s Foot Notation
2) Crow’s Foot Notation.  The images are messed up, but there are some great examples of using verbs on the relationships.

Finally onto my top three reasons for wanting to use Crow’s Foot Notation…

1. The little crow’s feet are understood by almost everyone.
When almost anybody goes to the whiteboard during a meeting to describe the relationship between objects there is usually very quickly an object drawn at the top which is the parent object.  Then a line with a crow’s foot is drawn down to the child object.  Here is the most simple example…

Parent Child Relationship

From there the relationships and entities start to grow and multiply.  But almost any project manager, analyst, software developer or web developer who has been around a few software projects will quickly understand what that line and the Crow’s foot means.  Even if I am talking to a client who has not done an ERD before I can quickly educate the client on the simple meaning of those symbols so we can have a very effective and efficient way to communicate.  If UML or some other more verbose notation had been drawn on the board there probably would have been some puzzled looks on some faces.

2.  Crow’s Foot notation is so descriptive with so few markings
This is where the efficiency of the notation comes into play.  With just a few marks on each side of the relationship we quickly understand the cardinality that is involved.  These markings at the end of the relationship also leave room for a verb to be placed on the relationship line to help in its description.  So when creating an ERD on a whiteboard or when creating one with software, the notation that is simple to draw is a winner.

3.  Crow’s Foot notation is used by Salesforce itself
I would prefer Crow’s Foot notation anyway, but since most of the work I do currently relates to Salesforce, it is nice to use what Salesforce also uses.  If you look at these links to the ERDs of the main Salesforce objects they are all written with Crow’s Foot notation.
Salesforce SOAP API Developer’s Guide

Maybe in the end I just like Crow’s Foot notation because it is about the extent of what I can draw artistically.  :)

One note to consider against Crow’s Foot notation is that If the ERD diagram is going to feed a system that will auto generate code based on UML then that standard should be researched and leveraged where possible.

What do you prefer for your ERD diagrams?  Does one type of notation work better for end users vs. developers vs. project managers vs. analysts?

This entry was posted in Technology and tagged , , , . Bookmark the permalink.

One Response to Three reasons why I like Crow’s Foot Notation for Enterprise Relationship Diagrams (ERDs).

  1. Leslie Henry says:

    Your post was helpful to me. Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>