Difference between revisions of "Database patterns"

From ProgClub
Jump to: navigation, search
Line 26: Line 26:
  
 
A token table must contain a 'a_{name}' column which contains the token. The 'a_{name}' column is usually a [[#DBT_TOKEN|DBT_TOKEN]].
 
A token table must contain a 'a_{name}' column which contains the token. The 'a_{name}' column is usually a [[#DBT_TOKEN|DBT_TOKEN]].
 +
 +
== name ==
 +
 +
The [[#name|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|DBT_ASCII_CI]] or [[#DBT_UTF8_CI|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|DBT_ASCII_BIN]] or [[#DBT_UTF8_BIN|DBT_UTF8_BIN]].
  
 
= Database types =
 
= Database types =

Revision as of 07:17, 18 March 2020

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.