Database layout¶
Compound values occupy columns in the host field's current and revision tables,
such as node__field_speakers and node_revision__field_speakers. Each row
identifies a host entity, language and outer delta; revision rows also identify
the historical revision.
| Outer delta | Name | Topic slot 0 | Topic slot 1 | Topic slot 2 |
|---|---|---|---|---|
| 0 | Ada Lovelace | Computing history | Analytical engines | NULL |
| 1 | Grace Hopper | Compilers | NULL | NULL |
Direct string sub-fields produce schema keys such as name__value,
topic__value, topic__value_1 and topic__value_2. Drupal's table mapping
adds the host field prefix. References use properties such as target_id.
Unlimited outer cardinality adds rows. Raising a sub-field cap adds nullable column sets; slot zero has no suffix. Saving compacts values into dense slots. Nested compounds multiply these columns. The budget guard refuses schemas beyond InnoDB's column and row-size limits.
Long nested names use derived identifiers. Resolve physical columns through the schema and Drupal's table mapping instead of constructing names yourself. Use nested sub-field paths in the Field API and wire format.
Dropping columns removes historical values too. Compound items have no independent revision storage. Follow the deployment guide for schema changes.