| 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';
 |