Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page describes a general variable table in the database.  The purpose of this table is to allow pieces of data to be stored without having to add additional tables or columns to the database.

The table will have the following columns:

id

name

value

setby

timestamp

  • id
    • variable.id contains a unique integer value
    • The id column is consistent with most other columns in the VCL database
  • name
    • variable.name contains a string representing the variable name
    • variable.name values must be unique
    • variable.name provides a human-friendly means of specifying a variable to set or retrieve
  • value
    • variable.value contains a string which is a YAML serialized representation of the data
    • The string stored in variable.value is programatically serialized before it is stored, and unserialized when it is retrieved
    • Various programming languages have the ability to transform data to/from YAML
    • Serialization allows multiple languages to share the same data structures
  • setby
    • variable.setby contains a string which indicates where and who last set the data
    • variable.setby is mainly used for debugging purposes
  • timestamp
    • variable.timestamp contains the date and time when the variable was last set
    • variable.timestamp should always be updated whenever a variable row is altered

Here is the table definition:

Code Block

CREATE TABLE IF NOT EXISTS `variable` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `name` varchar(128) NOT NULL default '',
  `value` longtext NOT NULL,
  `setby` varchar(40) default NULL,
  `timestamp` datetime NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Code Block
my %kms_configuration = (
 'ECU' => '192.168.22.33:1688',
 'NCSU' => 'kms-server.ncsu.edu',
);

id

name

value

setby

timestamp

2

kms-configuration

---
ECU: 192.168.22.33:1688
NCSU: kms-server.ncsu.edu

new.pm:139

2009-05-26 11:35:36

Code Block

my my @contacts = (
  {
    'firstname' => 'Joe',
    'lastname' => 'Doe',
    'email' => ['joe@somewhere.org', 'jdoe22@unity.ncsu.edu'],
    'employee_id' => 3342
  },
  {
    'firstname' => 'Jane',
    'lastname' => 'Doe',
    'email' => ['jane@somewhere.org'],
    'employee_id' => 7865
  }
);
2009-05-26 11:35:36

id

name

value

setby

timestamp

2

kms-configuration

---
ECU: 192.168.22.33:1688
NCSU: kms-server.ncsu.edu

new.pm:139

3

contacts

---
- email:
    - joe@somewhere.org
    - jdoe22@unity.ncsu.edu
  employee_id: 3342
  firstname: Joe
  lastname: Doe
- email:
    - jane@somewhere.org
  employee_id: 7865
  firstname: Jane
  lastname: Doe

DataStructure.pm:554

2009-05-26 12:35:36