UI//Schema-Driven UI//EAV
Entity-Attribute-Value -- a database pattern where instead of one column per field, you store rows of (entity_id, attribute_name, value). Every "field" is a row, not a column.
Entity-Attribute-Value -- a database pattern where instead of one column per field, you store rows of (entity_id, attribute_name, value). Every "field" is a row, not a column.
Enables unlimited custom fields without schema migrations -- Salesforce and Jira use this under the hood
The tradeoff is brutal: no column types, no foreign keys, no indexes on specific attributes, queries become multi-join nightmares
SELECT value FROM attributes WHERE entity_id = 42 AND attribute = 'email' vs SELECT email FROM contacts WHERE id = 42
Querying "all contacts where email contains X" requires scanning the entire attributes table filtered by attribute name
The alternative (and usually the better one): JSONB columns in SQL for flexible fields on top of a typed relational core