Entries consist of attributes:
standard / built-in attributes
custom attributes
Different kinds of attributes:
Primary attributes need their own DB column
PRO: type-safe; indexable
CON:
users
table must be altered (manually)
Secondary/overflow attributes are stored as a key/value pair
PRO: no need to alter
users
tableCON: searching is less efficient; not type-safe; max. length 512 characters
Table attributes need their own DB table (created automatically)
Attachment attributes also need their own DB tables (created automatically)
Try the embedded H2 console to explore UM’s database structures:
gradle h2
Attributes can be modified, custom attributes can be added: