11 registered users
in last 24 hours
Categories are used in ]project-open[ to specify the "Type" and "Status" of most business objects. They define the values of most drop-down boxes in the system.
Categories are actually not a real object type, but they behave very similarly, so we have included them in this section.
For a view of all available categories see: Categories
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.
The contents of the im_categories table:
create table categories (
category varchar(50) not null,
profiling_weight integer default 1
check(profiling_weight >= 0),
enabled_p char(1) default 'f'
check(enabled_p in ('t','f')),
There is a category editor available in the /intranet/admin/categories/ section of ]project-open[ to dynamically change the system categories.