mandriva
 

Inventory database documentation

Nicolas Noirbent

Revision History
Revision 1.0 2008-10-07 NN

Documentation for schema v.4

Abstract


1. The inventory database design

The inventory database holds data on the computers managed by Pulse 2, namely their hardware (available storage, memory, connected printers/modems etc.) and software (installed software packages, registry keys etc.) configuration.

The inventory database has a number of hardware/software element tables, each describing a given computer part in detail, with fields specific to the part (e.g. the available space, in the Drive table).

Every table is linked to the Inventory and Machine tables using a table dedicated to this linking feature. For example, the Modem table is linked to the Inventory and Machine tables using the hasModem table.

2. The "Inventory" table

This table holds a list of the inventories stored in the database.

id

The table primary key

Date

The date the inventory was retrieved

Time

The time the inventory was retrieved

Last

Whether this inventory is the last one we retrieved for this machine

3. The "Machine" table

id

The table primary key

Name

The machine's name

lastId

A foreign key to the "Inventory" table, pointing to the last inventory retrieved for this machine.

4. The "hasXxx" tables

The "hasXxx" tables (e.g. "hasModem", "hasStorage", etc.) are used to link the "Machine", "Inventory" and parts tables. For example, the "hasStorage" table links together the "Machine", "Inventory" and "Storage" tables.

For example, the "hasStorage" table :

machine

A foreign key to the "Machine" table

inventory

A foreign key to the "Inventory" table

storage

A foreign key to the "hasStorage" table. For the "Modem" table it would be "modem" and "hasModem", for the "Drive" table it would be "drive" and "hasDrive", etc.