relations

Typed edges between identities, such as works_at (person → company)

What you'll learn

You're writing SQL that reads relations and need its columns, what each holds, and the DDL as the spec states it.

  • every column and its type
  • what the object holds and who writes it
  • the DDL as the spec states it

A table. Typed edges between identities, such as works_at (person → company)

Columns

ColumnTypeConstraints
from_idTEXTNOT NULL REFERENCES identities(id)
relationTEXTNOT NULL
to_idTEXTNOT NULL REFERENCES identities(id)
created_atTEXTNOT NULL

Table constraints: PRIMARY KEY (from_id, relation, to_id).

Definition

From spec/ledger.sql, which is the machine-checkable form of SPEC.md §3:

CREATE TABLE relations (
  from_id    TEXT NOT NULL REFERENCES identities(id),
  relation   TEXT NOT NULL,               -- e.g. 'works_at'
  to_id      TEXT NOT NULL REFERENCES identities(id),
  created_at TEXT NOT NULL,
  PRIMARY KEY (from_id, relation, to_id)
);

Used in