For further discussion about about categories and their function in the data-model see: Categories

Categories and Referential Integrity

Normally it is recommended (according to many database design books) to create a separate table for each of these types or stati, in order to be able to use full Referential Integrity and to enhance the types and stati by additional information. However, this approach typically leads to a large number of tables.

Instead we have chosen to follow the model of the ArsDigita Intranet 3.4 to use categories where possible, in order to reduce code size and to allow for easy adaptation to different companies.

Therefore, each database object will contain two integer identifier values (one each for "Type" and "Status") that are utilized to look-up the corresponding values contained in the global list i.e. im_categories.