Quick answer: The ER diagram draws the entities and their foreign keys, and the node state reflects the reconciliation status, so a reviewer can see the missing, drift, matched, and extra tables at a glance and trace the relationships behind an API operation. It is a visual map of the same four-layer reconciliation rather than a separate model.
Why the diagram helps the review
A table of statuses and diffs is accurate but slow to read, especially when the model has many relationships. The diagram shows the entities and how they connect, and the node state carries the comparison, so the eye can move from the changed table to its neighbors rather than cross-reference a list.
This keeps the review focused on the structure and the blast radius rather than on assembling the relationships by hand.
What the diagram shows
| Element | How it appears |
|---|---|
| Entity | A node carrying the table |
| Foreign key | A link between nodes |
| Link table | A node connecting two entities |
| Node state | Color or state reflecting the table status |
| Impact | The connected operations and tables |
Because the node state reflects the reconciliation, a matched table and a drift table are distinguishable without opening the field list, and an inferred link table stays visually separate from an observed one.
How to read it during a review
- Scan the node states and find the missing and drift tables first.
- Follow the links to the related tables and the foreign keys.
- Open the field diffs on a drift node.
- Trace the impacted operations from the table.
- Confirm the inferred link tables and the open questions.
The bidirectional analysis works through the same map. Starting from an operation, the reviewer follows the tables it touches, and starting from a table, the connected operations are visible, which keeps the blast radius in one place.
Take a review of a change to the orders service. On the diagram, the reviewer first sees the orders node marked drift and a new preferences node marked missing, while the customers and products nodes stay matched and drop out of the work. Following the links, the drift on orders leads to a foreign key that the new preferences node also references, so the reviewer sees the dependency before reading a field list. The inferred link table between orders and products sits in a separate visual state, and the open question on its cardinality is attached. The same map then traces the impacted operations from orders, so the reviewer confirms which requests need a check. Doing this from a flat table would require following the keys and operations by hand, and the visual keeps the whole blast radius in one view.
Honest reading
The diagram is a view of the reconciliation, not a runtime result. A node that looks matched says the model and the live table agree, and it does not prove the behavior is correct, and an inferred node stays a proposal until confirmed. Treat the visual as a guide to where the evidence is rather than a verdict on its own.
When the business logic is ambiguous, the open question is attached rather than hidden behind a clean-looking node. The generated SQL behind the diagram is still never executed by the modeling package.
Powerduck keeps the ER diagram and the node states in the desktop so the review reads the structure and the comparison together.
Frequently asked questions
Does the node state match the table status? Yes. The node reflects missing, drift, matched, or extra, so the comparison is visible on the diagram.
Can I see impact from the diagram? Yes. The bidirectional analysis connects tables to operations and back through the same map.
Is a matched node a verified behavior? No. It says the model and table agree, and runtime behavior still needs tests.
The bottom line
The ER diagram is a visual map of the reconciliation, showing entities, keys, and link tables with node states that carry the table status. Start with the missing and drift nodes, follow the relationships, and trace the impacted operations rather than reading a flat list. Keep it as a guide to the evidence, since a matched node does not prove runtime behavior and an inferred node stays a proposal. The diagram makes the structure readable, not automatic. Read more in the API data model guide.

