2. Database Tables

While you may not need to directly access the database tables that underlay the system, it is useful to have a model of how they are employed. The database serves as a persistent store for all of the objects served up to the dynamically-generated Metadot Portal Server pages. The system does very little out-of-database caching, and thus performs a set of database queries for each page that it builds.

Here we list some of the more important information objects in the system and the database tables they map to. You may wish to revisit this section after you've read the sections below.

Gizmos: all types of Gizmos (Categories, Discussions, Tables, Items, etc.) use the instance table to store their data. In addition, some gizmos utilize secondary tables as well. The Discussion gizmo keeps its messages in the message table. The Poll gizmo uses poll_response and poll_vote .

GizmoTools: The GizmoTool parameter info is in the gizmoitemparam table as attribute/value information; and gizmotoolitem is used to associate sets of gizmotool parameters with channels.

Basic Tools: The description of a basic tool (e.g. the HTML used to render it) is stored in the instance table.

User information is stored in the user and extended_user tables. Required "core" fields are in the user table. Then, subclasses of the default user class map their specific fields to the extended_user table, allowing different Metadot sites to be configured to support different user profile information (see Section 4).

Groups: information about groups and the users in each group is stored in the tables grp and grpmembers.

Channels: channel information is stored in channel and channelitem tables.

The mypage table holds information about the `my page' channel selection and layout for each user.

The permissions table holds information about the permissions for every Auditable object (see Section 3).

The session table holds user session data.

The uploads table holds the file "attachments" associated with portal objects (where these objects are typically Gizmos, but need not be).

The subscription table holds the channels to which each user has subscribed (for example, an external news channel), and info about the form in which they wish to receive the change notifications (e.g., daily digests).

The params table holds all of the system parameters; all of the site's configuration information. This includes layout and `look' information as well as the variables that determine site operation (for example, the mail server address).

The event_log table is used to log information about nearly every site request. This information can then be displayed in the browser via an administrative interface. The event table is cleaned periodically by one of the portal's "backend" scripts. See the Administrator's guide for more information. (Note: not available in open-source release).