NAME

WeBWorK::DB::Layout - the database layout.

DESCRIPTION

The database layout is a hash reference consisting of items keyed by table names. The value of each item is a reference to a hash containing the following items:

record

The name of a perl module to use for representing the data in a record.

schema

The name of a perl module to use for access to the table.

params

A reference to a hash containing extra information needed by the schema. Some schemas require parameters, some do not. The only supported parameters are non_native, tableOverride, and merge at this point.

If non_native => 1 is set it means that the table is not a table for the course. Note that can mean two things. It can mean that the table is a global site table, or it can mean that the table is a virtual table.

The tableOverride parameter is the name of the physical table in the database. Usually this just prepends $courseName.

If the merge parameter is set it should be a reference to an array of table names (that are NOT non_native) whose values are merged to give the values in this table. Note that a merge table is virtual and must have non_native => 1 set.

depend

A reference to an array of other database tables on which this table depends and whose schemas must be initialized prior to initialization of the schema for this table.

METHODS

databaseLayout

my $dbLayout = databaseLayout($courseName);

This returns a database layout hash as described above for the course identified by $courseName which is the only required argument for this method.