Entries consist of attributes:
standard / built-in attributes
custom attributes
Three 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
Try the embedded H2 console to explore UM’s database structures:
gradle h2
Attributes can be modified, custom attributes can be added: