The fields dictionary

TL;DR

Authored field meaning joined to the live schema, showing documented, undocumented and absent columns rather than hiding any of them.

What it shows: the columns of a family of tables, with what each one means.

Where the figures come from: two places joined at request time. Column names come from the live schema, so the list cannot claim a column that does not exist or omit one that does. Meaning comes from an authored file per family under config/dictionary/fields/.

Three states, all visible

A column is shown in one of three states:

StateMeans
documentedThe column exists and has authored meaning
undocumentedThe column exists and nobody has written down what it means
no columnMeaning is authored here, but no such column exists in this environment

The third is the one usually hidden, and hiding it makes coverage look complete when it is not. A definition with no column is either a typo or a column that has not been migrated into this environment yet, and both are worth seeing.

The documented/undocumented balance is computed from this environment's schema. A description is not proof of completeness or correctness; verify the named family and the table list beside it.

The families

FamilyCovers
Transaction headersThe seven <type>s tables
Transaction linesExisting <type>lines tables; prepayments have no lines
ImpactsPer-group cm_impact_*, realised order totals and cm_expectedimpact_salesorders
CustomersThe customer* identity, fingerprint and sequence tables

A family is chosen from a fixed list. A name that is not on it falls back to transaction headers rather than reaching the database, because the family decides which tables are read and a table name lands in an identifier position.

What it excludes: the classification columns, which have their own page and their own file, and which keep working unchanged.

Why it is slower than most screens

It reads the real schema on every request: one SHOW CREATE TABLE per table in the family. It reads the family's tables only, not the whole schema, which is the difference between a few seconds and many.

Evidence

Behaviour from app/models/dictionaryfields.php, app/http/dictionary/fields.php and app/data/dictionary/fields.php. Basis: code-checked and exercised against a running instance.

About this document