ERD notation: how to read the lines
Crow's foot, Barker and Chen draw the same relationship three different ways. This is what each mark means and which one to use.
A line says two things, not one
Every relationship line answers two separate questions, and most confusion about ERDs comes from reading them as one. The first is cardinality: how many rows on this side can pair with one row on the other. The second is optionality: whether there has to be any at all.
Crow's foot notation puts both at the same end of the line, which is why the marks come in pairs. The symbol nearest the box is the cardinality; the one just before it is the optionality. Reading them in that order — outer then inner — is the whole skill.
| Mark | Means | Reads as |
|---|---|---|
| Single bar | Exactly one | one and only one |
| Crow's foot | Many | one or more |
| Circle | Optional | zero |
| Circle + crow's foot | Zero or many | none, one, or many |
| Bar + crow's foot | One or many | at least one |
| Circle + bar | Zero or one | none, or exactly one |
| Bar + bar | Exactly one | required, and only one |
Which end holds which mark
The marks describe the box they touch. A crow's foot next to orders on a customer–orders line means one customer has many orders — not that an order has many customers. This reads backwards to most people at first, and it is the single most common mistake in a hand-drawn diagram.
A practical check: cover one end of the line and read the sentence out loud starting from the box you can still see. 'One customer has zero or many orders.' Then cover the other end. 'One order belongs to exactly one customer.' If both sentences are true, the marks are on the right ends.
Crow's foot, Barker and Chen
Three notations are still in use, and they disagree about where to put the information rather than about what it is.
| Crow's foot (IE) | Barker | Chen | |
|---|---|---|---|
| Cardinality | Symbols at the line ends | Symbols at the line ends | Numbers written on the line |
| Optionality | Circle at the line end | Dashed half-line | Written as (0,n) |
| Many-to-many | Drawn directly, resolved later | Drawn directly | A diamond between the boxes |
| Attributes | Listed inside the box | Listed inside the box | Ovals attached to the box |
| Where you see it | Most modern tools | Oracle documentation | Textbooks and coursework |
Crow's foot is the default in tools because it puts everything at the line ends, which survives a diagram with hundreds of boxes. Chen is clearer for teaching because a many-to-many is visibly a third thing, but the ovals make even a small schema take a page.
Identifying and non-identifying
A solid line means the child cannot exist without the parent and carries the parent's key inside its own primary key. A dashed line means the child merely references the parent. Order lines are the usual example of the first — an order line with no order is nothing — and an order's shipping address is the usual example of the second.
In practice most tools draw everything solid and the distinction lives in the key definitions instead. If your diagram does not distinguish them, look at whether the foreign key is part of the primary key; that is the same information.
Reading a many-to-many
A crow's foot at both ends means the relationship has no home. It is legal on a conceptual diagram and impossible in a relational database, so somewhere between the two a junction table appears — one row per pair, with the two foreign keys together as the key.
The moment worth watching for is when that junction grows a column of its own. A posts–tags junction that also holds who added the tag and when has stopped being a join and become an entity, and it deserves a name of its own rather than post_tags.
Frequently asked
- Which notation should I use?
- Crow's foot, unless you are submitting coursework that asks for Chen. It is what every modern tool draws, what most engineers can read without a legend, and it stays legible on a diagram with a hundred tables.
- What does the circle on a relationship line mean?
- Zero — the relationship is optional on that side. A circle and crow's foot together means zero or many; a circle and a bar means zero or one, which is how an optional one-to-one is drawn.
- Do I need to show a junction table on the diagram?
- On a physical diagram, yes, because it exists in the database. On a conceptual one you can draw the many-to-many directly and resolve it later. Showing it early is usually better, because that is when you notice the junction wants columns of its own.
- What is the difference between a solid and a dashed relationship line?
- Solid is identifying: the child's primary key includes the parent's key and the child cannot exist alone. Dashed is non-identifying: the child just holds a reference. Many tools draw everything solid, in which case check whether the foreign key is part of the primary key.
- Why do the marks look backwards to me?
- Because each mark describes the box it touches, not the one across the line. Read each end as a sentence starting from the near box and both will come out right.