The entity map

An interactive ER diagram of your table's entities, relationships and GSI overloads, generated from live data.

The Map tab draws your single-table design as an entity-relationship diagram — entities, their item-collection relationships, and the GSIs they overload — laid out automatically from the model Tablyne inferred from your data.

What the diagram shows

Two kinds of node and two kinds of edge:

ElementLooks likeMeaning
Entity nodeSolid rounded card, accent-coloredA detected entity type, with its PK/SK patterns and item count
GSI nodeDashed violet cardA global secondary index that one or more entities overload
Item-collection edgeSolid gray line, 1—NA parent/child relationship inside a partition (e.g. USER# owns its ORDER# items)
GSI-overload edgeDashed violet line, indexaAn entity is projected into that secondary index

Relationships are inferred, not declared. An item-collection edge is drawn when one entity’s partition-key prefix matches another entity’s id — the classic single-table parent/child pattern. A GSI-overload edge is drawn for every index an entity’s items carry.

Layout

Tablyne computes a deterministic left-to-right layout: roots (entities with no parent) sit in the first column, children fan out to the right by depth via a cycle-safe breadth-first pass, and GSI nodes stack in a final column. The result is stable and readable for roughly 3–10 entities. Edges are trimmed to node borders so arrows point cleanly between cards.

The canvas behaves like a diagramming tool:

  • Pan — drag empty space, or scroll (plain wheel / trackpad).
  • ZoomCtrl/ + scroll to zoom at the cursor, or use the −/+ buttons.
  • Fit — click the percentage readout to reframe everything; the diagram auto-fits on load and on resize until you move it by hand.
  • Reposition a node — drag any card; edges follow live.
  • Reorganize — the ↺ button clears your manual positions and refits.

Selecting a node (a tap with no drag) lights it and its incident edges and dims the rest, so you can trace one entity’s relationships at a glance.

The inspector

The panel beside the diagram details the selection.

For an entity it shows the accent dot, label and item count, the PK/SK patterns, its relationships in plain language (parent of …, child of …, indexed in …), the full attribute list with key roles, and the entity’s access patterns — each tagged 🟢 Query or 🔴 Scan:

Query PK=USER#<id> SK begins_with ORDER#   🟢 Query
Scan + filter status = …                    🔴 Scan

For a GSI node it lists which entities index into it and notes that the index is overloaded across entity types.

Sample vs. full scan

The map is built from the same model as the rest of the Studio, so by default it reflects the loaded rows. Use count all in the scan bar to read the whole table and redraw the map with exact counts and any entities or overloads that only appear deeper in the data. See /docs/std-overview/ for the sample-vs-full-scan trade-off.

Limitations

  • Inferred relationships: edges come from key-prefix matching and index participation, not from declared foreign keys. A relationship that doesn’t follow the parent# convention won’t be drawn.
  • Sample-bound by default: counts and which nodes/edges appear depend on loaded rows until you count all.
  • Best for moderate models: the auto-layout targets ~3–10 entities; very large or deeply cyclic models still render but are less tidy.
  • Item counts shown on cards are sample counts until a full scan replaces them.