Database patterns
Patterns
about
The about tables contain database meta data.
An about table is named 't_about_{name}'.
lookup
The lookup tables contain hard-coded reference data.
A lookup table is named 't_lookup_{name}'.
A lookup table must contain a 'a_{name}_enum' column which identifies a row. The 'a_{name}_enum' column is usually be a DBT_UINT8.
If an optional 'a_{name}_char' column exists it must be of type DBT_ASCII_CHAR_BIN. The PHPBOM library will use lowercase char codes and applications can use uppercase char codes.
If you're extending a PHPBOM lookup table you should code from the max enum down.
token
The token tables contain tokens.
A token table is named 't_token_{name}'.
A token table must contain a 'a_{name}' column which contains the token. The 'a_{name}' column is usually a DBT_TOKEN.
name
The name tables contain names.
A name table is named 't_name_{name}'.
A name table must contain a 'a_{name}' column which contains the case-insensitive name. The 'a_{name}' column is usually a DBT_ASCII_CI or DBT_UTF8_CI.
A name table must contain a 'a_{name}_lower' column which contains the case-sensitive lowercase name. The 'a_{name}_lower' column is usually a DBT_ASCII_BIN or DBT_UTF8_BIN.
Database types
DBT_UINT8
A DBT_UINT8 is an integer from 0 to 255.
DBT_ASCII_CHAR_BIN
A DBT_ASCII_CHAR_BIN is a single case-sensitive ASCII character.
DBT_TOKEN
A DBT_TOKEN is a case-sensitive 32-character alphanumeric ASCII string.