1 |
rodolico |
1 |
connect camp2;
|
|
|
2 |
|
|
|
3 |
drop table if exists users;
|
|
|
4 |
create table users (
|
|
|
5 |
id int unsigned not null auto_increment,
|
|
|
6 |
username varchar(64) unique not null comment 'login user name',
|
|
|
7 |
password char(32) not null comment 'encrypted password',
|
|
|
8 |
group_id int unsigned references groups(id),
|
|
|
9 |
where_clause text comment 'appended to all queries used to limit the access the user has to records',
|
|
|
10 |
email varchar(64) comment 'email address so we can contact them',
|
|
|
11 |
notes text comment 'Any notes you want',
|
|
|
12 |
created datetime not null,
|
|
|
13 |
removed datetime default null comment 'Date removed',
|
|
|
14 |
primary key (id)
|
|
|
15 |
) comment 'logins to system';
|
|
|
16 |
|
|
|
17 |
|
|
|
18 |
drop table if exists groups;
|
|
|
19 |
create table groups (
|
|
|
20 |
id int unsigned not null auto_increment,
|
|
|
21 |
name varchar(100) unique not null comment 'name of this group',
|
|
|
22 |
created datetime not null,
|
|
|
23 |
modified datetime default null,
|
|
|
24 |
primary key (id)
|
|
|
25 |
) comment 'holds users groups for the ACL code';
|
|
|
26 |
|
|
|
27 |
drop table if exists user_group;
|
|
|
28 |
create table user_group (
|
|
|
29 |
user_id int unsigned not null references users(id),
|
|
|
30 |
group_id int unsigned not null references groups(id),
|
|
|
31 |
primary key (user_id,group_id)
|
|
|
32 |
) comment 'maps users to groups';
|
|
|
33 |
|
|
|
34 |
drop table if exists owners;
|
|
|
35 |
create table owners (
|
|
|
36 |
id int unsigned not null auto_increment,
|
|
|
37 |
name varchar(64) not null unique comment 'Name of owner',
|
|
|
38 |
notes text comment 'Any notes you want',
|
|
|
39 |
created datetime not null,
|
|
|
40 |
removed datetime default null comment 'Date removed',
|
|
|
41 |
primary key (id)
|
|
|
42 |
) comment 'holds owners information';
|
|
|
43 |
|
|
|
44 |
|
|
|
45 |
drop table if exists sites;
|
|
|
46 |
create table sites (
|
|
|
47 |
id int unsigned not null auto_increment,
|
|
|
48 |
name varchar(64) not null unique comment 'Name of site',
|
|
|
49 |
notes text comment 'Any notes you want',
|
|
|
50 |
created datetime not null,
|
|
|
51 |
removed datetime default null comment 'Date removed',
|
|
|
52 |
primary key (id)
|
|
|
53 |
) comment 'holds site information';
|
|
|
54 |
|
|
|
55 |
|
|
|
56 |
drop table if exists device_types;
|
|
|
57 |
create table device_types (
|
|
|
58 |
id int unsigned not null auto_increment,
|
|
|
59 |
name varchar(64) not null unique comment 'short name for display',
|
|
|
60 |
system tinyint(1) comment 'If true (1) this is a system. Set to 0 for printers etc...',
|
|
|
61 |
notes text comment 'Any notes you want',
|
|
|
62 |
created datetime not null,
|
|
|
63 |
removed datetime default null comment 'Date removed',
|
|
|
64 |
primary key (id)
|
|
|
65 |
) comment 'holds types of devices, such as computer, router, etc...';
|
|
|
66 |
|
|
|
67 |
drop table if exists attributes;
|
|
|
68 |
create table attributes (
|
|
|
69 |
id int unsigned not null auto_increment,
|
|
|
70 |
name varchar(64) not null unique comment 'short name for display',
|
|
|
71 |
notes text comment 'Any notes you want',
|
|
|
72 |
created datetime not null,
|
|
|
73 |
removed datetime default null comment 'Date removed',
|
|
|
74 |
primary key (id)
|
|
|
75 |
) comment 'lookup table of possible attributes to devices';
|
|
|
76 |
|
|
|
77 |
drop table if exists devices;
|
|
|
78 |
create table devices (
|
|
|
79 |
id int unsigned not null auto_increment,
|
|
|
80 |
serial_number varchar(64) null comment 'serial number of device',
|
|
|
81 |
name varchar(255) not null comment 'name of device',
|
|
|
82 |
parent_id int unsigned null references devices(id),
|
|
|
83 |
device_type_id int unsigned not null references device_types(id),
|
|
|
84 |
site_id int unsigned null references sites(id),
|
|
|
85 |
owner_id int unsigned not null references owners(id),
|
|
|
86 |
notes text comment 'Any notes you want',
|
|
|
87 |
created datetime not null,
|
|
|
88 |
removed datetime default null comment 'Date removed',
|
|
|
89 |
primary key (id)
|
|
|
90 |
) comment 'holds computers, cards that make them up, etc...';
|
|
|
91 |
|
|
|
92 |
drop table if exists device_aliases;
|
|
|
93 |
create table device_aliases (
|
|
|
94 |
id int unsigned not null auto_increment,
|
|
|
95 |
name varchar(64) not null unique comment 'short name for display',
|
|
|
96 |
device_id int unsigned not null references devices(id),
|
|
|
97 |
notes text comment 'Any notes you want',
|
|
|
98 |
created datetime not null,
|
|
|
99 |
removed datetime default null comment 'Date removed',
|
|
|
100 |
primary key (id)
|
|
|
101 |
|
|
|
102 |
) comment 'aliases for devices';
|
|
|
103 |
|
|
|
104 |
drop table if exists attributes_devices;
|
|
|
105 |
create table attributes_devices (
|
|
|
106 |
id int unsigned not null auto_increment,
|
|
|
107 |
device_id int unsigned not null references devices(id),
|
|
|
108 |
attributes_id int unsigned not null references attributes(id),
|
|
|
109 |
attribute_value text comment 'the actual value of the attribute in question',
|
|
|
110 |
created datetime not null,
|
|
|
111 |
removed datetime default null comment 'Date removed',
|
|
|
112 |
primary key (id)
|
|
|
113 |
) comment 'Each device can have multiple attributes and values';
|
|
|
114 |
|
|
|
115 |
drop table if exists files;
|
|
|
116 |
create table files (
|
|
|
117 |
id int unsigned not null auto_increment,
|
|
|
118 |
original_name varchar(64) not null comment 'original file name',
|
|
|
119 |
name_on_disk varchar(64) not null unique comment 'name of file on disk',
|
|
|
120 |
mime_type_id int unsigned default null references mime_types(id),
|
|
|
121 |
device_id int unsigned not null references devices(id),
|
|
|
122 |
site_id int unsigned null references sites(id),
|
|
|
123 |
owner_id int unsigned not null references owners(id),
|
|
|
124 |
created datetime not null,
|
|
|
125 |
removed datetime default null comment 'Date removed',
|
|
|
126 |
primary key (id)
|
|
|
127 |
) comment 'Files which can be associated with an owner site or device';
|
|
|
128 |
|
|
|
129 |
|
|
|
130 |
drop table if exists mime_types;
|
|
|
131 |
create table mime_types (
|
|
|
132 |
id int unsigned not null auto_increment,
|
|
|
133 |
name varchar(64) not null comment 'the web definition of the mime type',
|
|
|
134 |
embed tinyint(1) default 0 comment 'If true (1) can be viewed on web page',
|
|
|
135 |
extension varchar(5) comment 'standard file extension used for this MIME type',
|
|
|
136 |
primary key (id)
|
|
|
137 |
) comment 'just keeps a list of standard MIME types for use with filess';
|
|
|
138 |
|
|
|
139 |
drop table if exists menus;
|
|
|
140 |
create table menus (
|
|
|
141 |
id int(10) unsigned not null auto_increment,
|
|
|
142 |
parent_id int(10) unsigned default null comment 'If this is a submenu the id of the parent',
|
|
|
143 |
caption varchar(20) not null comment 'The actual caption displayed',
|
|
|
144 |
url varchar(120) default null comment 'the url of the page/script to call or null if this contains sub-options',
|
|
|
145 |
primary key (id)
|
|
|
146 |
) comment='We keep the entire menu structure here so modules can modify';
|
|
|
147 |
|
|
|
148 |
drop table if exists menu_group;
|
|
|
149 |
create table menu_group (
|
|
|
150 |
menu_id int unsigned not null references menus(id),
|
|
|
151 |
group_id int unsigned not null references groups(id),
|
|
|
152 |
primary key (menu_id,group_id)
|
|
|
153 |
) comment 'gives a group access to a menu';
|