Main /

# Structs

## Graph context.

### Vertex.

A graph contains just one vertex and no edges. A vertex has a primary key and some Properties. The struct translates into a single relational table.

### Edge.

A graph contains just one edge and no vertices. An edge contains one or more foreign keys and optional a few Properties. The struct is not very useful without their incident vertices. That why Boxary automatically extends the graph with the incident vertices of the edge.

### Planar.

Either a null graph, either a graph that can be drawn in a planar context. A vertex and an edge is a planar.

### Arc.

A graph contains two vertices and their incident edge. Accessing the graph starts with one vertex and relieves the other vertices using the edge. Typically the edge covers an n:m relation of the vertices, while the application reduces the graph into a 1:n relation between the vertices.

### Cluster.

A graph contains a few vertices with simple edges between them. These edges cover a 1:1 relation. Typically all these vertices have the same primary key. The struct translates to several relational tables in a view as if all of them are just one physical table. Non-existent vertices have null in their respective columns.

### Clew.

A graph contains a few edges without vertices. These edges are linked to each other using a minimum one foreign key. Boxary automatically extends the graph with the incident vertices of the edges. When constructing the SQL the incident vertex belonging to the shared foreign key is skipped.

## Relational context.

### Loop Edge.

A graph contains one Edge and one Vertex. The foreign key of the edge points (virtually) to a foreign key of the vertex. There is no storage assigned to the edge. Typically a parent-child relation.

### Tree Edge.

A graph contains one edge and two vertices. The storage assigned to the edge is embedded in one of the vertices. Typically a 1:n relation.

### Cusp Edge.

A graph contains one edge and two vertices. The edge has its own storage (which could be mistaken as a vertex). Typically an n:m relation.

### Clamp Edge.

A graph contains one edge and one vertex. The edge has its own storage (which could be mistaken as a vertex). Typically a recursive n:m relation.

### Digon Edge.

A graph contains one edge and one vertex. The foreign key of the edge points (virtually) to a primary key of the vertex. There is no storage assigned to the edge. Typically a recursive relation (pairwise adjacent).