Skip to content

ERD style

Use meaningful names for relationship labels

(ie avoid 'is a', 'has', etc.)
Your diagram should clearly communicate the meaning of each element. Good name choices are essential.

Use singular nouns for tables names and verbs for relationship labels

Each rectangle on the ER diagram represents a notional entity and should therefore be singular. This also fits in better when reading the relationship labels ("one is related one or more s"). Some tools enforce plural names, however.

Make all of your tables the same width

This is just visually more pleasing. Sometimes this may not be possible for practical layout reasons - ie you may have to squeeze some tables to fit them on the page.

Use elbow-style connectors

This type of connectors ensures that your relationship lines are made up of horizontal and vertical sections. This will make it easier to follow a complex diagram. If straight connectors are used and the tables are not centre-aligned, the effect will be chaotic.

Avoid crossing lines

Just common sense - lines that cross are more difficult to interpret. It is usually possible to avoid crossing lines by careful positioning of the tables.

Differentiate relationship lines – ie no branching

Each relationships line should be completely distinct - that is, no two lines should share a section. Here is an example of what NOT to do:

Bad ER diagram

Align tables where possible

This is another technique which simplifies the interpretation that the viewer has to do. Tables that are laid out in a regular grid are easier to understand.

Do not use arrow head on relationship lines

Relationships are bi-directional and so they should not have arrow heads which would indicate directionality.

Do not use arrows in relationship labels

The name of the relationship should be whatever best describes the relationship. Whatever name you choose will work best in one direction along the relationship line, and thatis what the arrow in the label indicates.

Use good arrow characters

In draw.io the default font is Helvetica which includes the Unicode characters for triangular arrow symbols. The problem is that you can't type them in. Fortunately, similar character sets like Arial can be used to find them, and you can just copy them from a standard word processing application such as Microsoft Word. In Word, use the Insert -> symbol feature to find the appropriate characters (Unicode 25B2, 25BA, 25BC and 25C4) and insert them into your document. Then copy them and paste them into a text field in draw.io. You can then copy them and paste them into your relationship labels as needed. You can also place the text field containing the arrow symbols into the scratchpad area if you want to save them between drawings.

Don't use horizontal arrows on vertical relationship lines

This is just ambiguous - use the arrow that points in the right direction

Centre relationship labels

Here you are creating more order which means that the diagram is less effort to read.

Carefully position multiplicity labels

You must ensure that it is absolutely clear which line a multiplicity label refers to. You also need to ensure that none of the label is obscured by another shape on the diaram.

Adopt a positioning convention

(eg labels on top/right and multiplicities on bottom/left) Again, create order. This makes the diagram easier to read.

Align multiplicity labels on horizontal or vertical relationship lines

Aligned labels are more visually pleasing, and add to the regularity of the layout.