Subversion Repositories computer_asset_manager_v1

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 rodolico 1
   /* sql table creator for computer_asset_mananagement_program */
2
   /* Author: R. W. Rodolico, http://www.dailydata.net */
3
   /* Software License: GPL */
4
   /* version 0.10 */
5
   /*         20071103 - Modified to break software packages and names into lookup tables */
6
   /* version 0.20 */
7
   /* Major modification to handle a lot more information such as additional device types, additional attributes */
8
   /* and network interconnects */
9
   /* version 2.0 */
10
   /* previously, this was an "all in one" structure. Now, reduced to minimal with each module creating its own */
11
   /* modifications. This is the very basic set of tables needed */
12
 
13
 
14
   drop table if exists _system;
15
   create table _system (
16
      group_name              varchar(64) not null comment 'used to group keys together',
17
      key_name                varchar(64) not null comment 'key into this value',
18
      theValue                text comment 'the actual value of this entry',
19
      primary key             (group_name,key_name)
20
   ) comment 'Basically a configuration file, equivilent to a windows INI file';
21
 
22
   drop table if exists client;
23
   create table client (
24
      client_id               int unsigned not null auto_increment,
25
      name                    varchar(64) comment 'the visible, displayed name',
26
      notes                   text comment 'world visible notes on the client',
27
      internal_notes          text comment 'These are internal notes, visible only to us',
28
      added_date              date comment 'date record was added',
29
      removed_date            date comment 'date record was deleted/supserceded',
30
      primary key             (client_id)
31
   ) comment 'information on a particular client';
32
 
33
   drop table if exists site;
34
   create table site (
35
      site_id                 int unsigned not null auto_increment,
36
      client_id               int unsigned not null comment 'a link to the client table',
37
      name                    varchar(64) comment 'the visible, displayed name',
38
      notes                   text comment 'Just a place to record some notes',
39
      added_date              date comment 'date record was added',
40
      removed_date            date comment 'date record was deleted/supserceded',
41
      primary key             (site_id)
42
   ) comment 'information on a site, which is tied to a client';
43
 
44
   drop table if exists device;
45
   create table device (
46
      device_id               int unsigned not null auto_increment,
47
      site_id                 int unsigned not null comment 'a link to the site table',
48
      device_type_id          int unsigned not null comment 'a link to the device_type table',
49
      name                    varchar(255) comment 'the visible, displayed name',
50
      notes                   text comment 'Just a place to record some notes',
51
      part_of                 int unsigned null comment 'If this device is a part of a larger device, this points to the larger device',
52
      added_date              date comment 'date record was added',
53
      removed_date            date comment 'date record was deleted/supserceded',
54
      primary key             (device_id)
55
   )  comment 'information on an indivicual device (computer, router, printer, etc)';
56
 
57
   drop table if exists attrib;
58
   create table attrib (
59
      attrib_id               int unsigned not null auto_increment,
60
      name                    varchar(64) comment 'the visible, displayed name',
61
      added_date              date comment 'date record was added',
62
      removed_date            date comment 'date record was deleted/supserceded',
63
      primary key             (attrib_id)
64
   )  comment 'These are attributes that can be applied to a device';
65
 
66
   drop table if exists device_attrib;
67
   create table device_attrib (
68
      device_id               int unsigned not null comment 'a link to the device table',
69
      attrib_id               int unsigned not null comment 'a link to the attrib table',
70
      value                   text comment 'The actual value of this attribute.',
71
      added_date              date comment 'date record was added',
72
      removed_date            date comment 'date record was deleted/supserceded',
73
      primary key             (device_id,attrib_id,removed_date)
74
   ) comment'links devices and their attributes together';
75
 
76
   drop table if exists device_type;
77
   create table device_type (
78
      device_type_id          int unsigned not null auto_increment,
79
      name                    varchar(64) comment 'the visible, displayed name',
80
      added_date              date comment 'date record was added',
81
      removed_date            date comment 'date record was deleted/supserceded',
82
      primary key             (device_type_id)
83
   ) comment 'simply a list of device types, ie computer, printer, whatever';
84
 
85
   drop table if exists login;
86
   create table login (
87
      login_id                int unsigned not null auto_increment,
88
      email                   varchar(64) comment 'email address, used as login id',
89
      pass                    char(32) comment 'the encrypted password of the user',
90
      primary key             (login_id)
91
   ) comment 'table for logging into the the maintenance system';
92
 
93
   drop table if exists permissions;
94
   create table permissions (
95
      permissions_id         int unsigned not null auto_increment,
96
      description             varchar(64) comment 'Description of this permission',
97
      php_function            text comment 'Holds PHP code that, when evaluated, determines whether user has access to a record',
98
      primary key             (permissions_id)
99
   ) comment 'Holds the definition of permissions available on the system';
100
 
101
   drop table if exists login_permissions;
102
   create table login_permissions (
103
      login_permissions_id    int unsigned not null auto_increment,
104
      login_id                int unsigned not null comment 'the login this record is associated with',
105
      permissions_id          int unsigned not null comment 'the permission this record is associated with',
106
      parameter_list          text comment 'Any additional parameters needed by this permission to validate',
107
      primary key             (login_permissions_id)
108
   ) comment 'Hold a list of permissions available to the login id';
109
 
110
   /* get some child tables out of the way */
111
   insert into attrib(name,added_date) values ('Operating System', now());
112
   insert into attrib(name,added_date) values ('Memory', now());
113
   insert into attrib(name,added_date) values ('CPU Count', now());
114
   insert into attrib(name,added_date) values ('CPU Speed', now());
115
   insert into attrib(name,added_date) values ('CPU Type', now());
116
   insert into attrib(name,added_date) values ('CPU Subtype', now());
117
   insert into attrib(name,added_date) values ('Brand',now());
118
   insert into attrib(name,added_date) values ('Model Number',now());
119
   insert into attrib(name,added_date) values ('Serial Number',now());
120
 
121
   insert into attrib(name,added_date) values ('Printer Cartridge', now());
122
 
123
 
124
   insert into device_type (name,added_date) values ('Computer',now());
125
   insert into device_type (name,added_date) values ('Router',now());
126
   insert into device_type (name,added_date) values ('Switch',now());
127
   insert into device_type (name,added_date) values ('Printer',now());
128
 
129
   insert into _system( group_name,key_name,theValue) values ( 'default','ALL','Brand,Model Number,Serial Number');
130
   insert into _system( group_name,key_name,theValue) values ( 'default','Computer','Operating System,Memory,CPU Count,CPU Speed,CPU Type,CPU Subtype');
131
   insert into _system( group_name,key_name,theValue) values ( 'default','Printer','Printer Cartridge' );
132
 
133
   insert into default_attrib(device_type_id,attrib_id,added_date)
134
      select device_type_id,attrib_id,now()
135
      from device_type,attrib
136
      where attrib.name in ('Brand','Model Number','Serial Number');
137
 
138
   insert into default_attrib(device_type_id,attrib_id,added_date)
139
      select device_type_id,attrib_id,now()
140
      from device_type,attrib
141
      where device_type.name = 'Computer' and attrib.name in ('Operating System','Memory','CPU Count','CPU Speed','CPU Type','CPU Subtype');
142
 
143
   insert into default_attrib(device_type_id,attrib_id,added_date)
144
      select device_type_id,attrib_id,now()
145
      from device_type,attrib
146
      where device_type.name = 'Printer' and attrib.name in ('Printer Cartridge');
147
 
148
  /* Now, create a client site */
149
   insert into client( name,added_date) values ( 'Daily Data', now() );
150
   insert into site ( client_id, name,added_date) select client_id,'Main Office',now() from client where name = 'Daily Data';
151
   insert into device ( site_id, device_type_id,name,added_date) select site_id,device_type_id, 'PIX 501',now() from site,device_type where site.name = 'Main Office' and device_type.name = 'Router';