| 56 | | ||status||ENUM(interested, pending, active, related) # related is for people who are in the database but not part of a team|| |
| 57 | | ||emergency_contact||FK person_id|| |
| 58 | | |
| 59 | | '''ROLE''' |
| 60 | | ||role_id||PK|| |
| 61 | | ||ICS_level||ENUM(Command, Section, Division, Individual)|| |
| 62 | | ||ICS_role||ENUM(PIO, Safety, Operations, Planning, Logistics, Intelligence, Finance/Admin)|| |
| 63 | | |
| 64 | | '''LIAISON''' |
| 65 | | |
| 66 | | # Could belong in incident_event, but it is a persistent relationship sometimes. |
| 67 | | ||liaison_id||PK, FK|| |
| 68 | | ||person_id||PK, FK|| |
| 69 | | ||organization_id1||PK, FK|| |
| 70 | | ||organization_id2||PK, FK|| |
| 71 | | ||when_assigned||DATETIME|| |
| 72 | | ||when_unassigned||DATETIME|| |
| 73 | | |
| 74 | | '''ACCESS_CONTROL''' |
| 75 | | TBD |
| 76 | | |
| 77 | | '''EQUIPMENT''' |
| 78 | | ||equipment_id||PK|| |
| 79 | | ||equipment_name||CHAR|| |
| 80 | | ||equipment_type||ENUM (HT, mobile radio, antenna, first aid kit, boots, backpack...)|| |
| 81 | | ||equipment_category||ENUM (communications, PPE, medical, SAR...)|| |
| 82 | | |
| 83 | | '''PERSON_EQUIPMENT''' |
| 84 | | |
| 85 | | # Equipment that volunteers have or should have. |
| 86 | | ||person_id||PK, FK|| |
| 87 | | ||equipment_id||PK, FK|| |
| 88 | | ||needs||INT|| |
| 89 | | ||has||INT|| |
| 90 | | |
| 91 | | '''LOCATION''' |
| 92 | | ||location_id||PK|| |
| 93 | | ||location_type||ENUM (home, work, incident, organization, company, division)|| |
| 94 | | ||street_address||CHAR|| |
| 95 | | ||street_address2||CHAR|| |
| 96 | | ||city|CHAR||| |
| 97 | | ||county||CHAR|| |
| 98 | | ||state/province||CHAR|| |
| 99 | | ||country||CHAR|| |
| 100 | | ||postal_code||CHAR|| |
| 101 | | ||longitude|||| |
| 102 | | ||latitude|||| |
| 103 | | ||last_updated||(DATE)|| |
| 104 | | |
| 105 | | '''PERSON_LOCATION''' |
| 106 | | ||person_id||PK, FK|| |
| 107 | | ||location_id||PK, FK|| |
| 108 | | ||location_type||ENUM(home, work, organization)|| |
| | 55 | ||status||ENUM('interested_volunteer,pending_volunteer,active_volunteer,inactive_volunteer,liason,contact')||NOT NULL|| |
| | 56 | ||emergency_contact||INTEGER(8)||UNSIGNED|| |
| | 57 | ||credential_id||INTEGER(8)||UNSIGNED|| |
| | 58 | ||phone_id||INTEGER(8)||UNSIGNED|| |
| | 59 | ||PRIMARY KEY||(person_id)|| |
| | 60 | ||UNIQUE KEY||IDX_person1(person_id)|| |
| | 61 | ||KEY||IDX_person2(person_id,credential_id)|| |
| | 62 | ||KEY||IDX_person3(person_id,phone_id)|| |
| | 63 | |
| | 64 | '''role''' |
| | 65 | ||role_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 66 | ||ics_level||ENUM('Command,Section,Division,Individual')|| |
| | 67 | ||ics_role||ENUM('PIO,Safety,Operations,Planning,Logistics,Intelligence,Finance/Admin')|| |
| | 68 | ||PRIMARY KEY||(role_id)|| |
| | 69 | ||UNIQUE KEY||IDX_role1(role_id)|| |
| | 70 | |
| | 71 | '''equipment''' |
| | 72 | ||equipment_id||INTEGER(8)||UNSIGNED|| |
| | 73 | ||equipment_name||VARCHAR(40)||NOT NULL|| |
| | 74 | ||person_id||INTEGER(8)||UNSIGNED|| |
| | 75 | ||PRIMARY KEY||(equipment_id)|| |
| | 76 | ||KEY||IDX_equipment1(person_id,equipment_id)|| |
| | 77 | |
| | 78 | '''equipment_type''' |
| | 79 | ||equipment_type_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 80 | ||equipment_type||VARCHAR(40)||NOT NULL|| |
| | 81 | ||equipment_category||VARCHAR(40)||NOT NULL|| |
| | 82 | ||PRIMARY KEY||(equipment_type_id)|| |
| | 83 | COMMENT='Types include things like handie-talkie,first aid kit,boots,gloves. Categories include things like communications,PPE,medical,SAR.'; |
| | 84 | |
| | 85 | '''location''' |
| | 86 | ||location_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 87 | ||location_type||ENUM('home,work,incident,organization,company,division,shelter,camp,command post,resource')||NOT NULL|| |
| | 88 | ||street_address||VARCHAR(100)|| |
| | 89 | ||street_address2||VARCHAR(100)|| |
| | 90 | ||city||VARCHAR(50)|| |
| | 91 | ||county||VARCHAR(50)|| |
| | 92 | ||postal_code||VARCHAR(40)|| |
| | 93 | ||longitude||VARCHAR(40)|| |
| | 94 | ||latitude||VARCHAR(40)|| |
| | 95 | ||last_update||DATE|| |
| | 96 | ||organization_id||INTEGER(8)||UNSIGNED|| |
| | 97 | ||PRIMARY KEY||(location_id,location_type)|| |
| | 98 | ||UNIQUE KEY||IDX_location1(location_id,location_type)|| |
| | 99 | ||KEY||IDX_location2(organization_id,location_id)|| |
| | 100 | |
| | 101 | '''person_location''' |
| | 102 | ||person_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 103 | ||location_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 104 | ||location_type||ENUM('home,work,other')||NOT NULL|| |
| 110 | | |
| 111 | | '''PERSON_ORGANIZATION''' |
| 112 | | |
| 113 | | # Tracks people's membership in an organization |
| 114 | | ||person_id||PK, FK|| |
| 115 | | ||organization_id||PK, FK|| |
| 116 | | ||active||BOOLEAN |
| 117 | | ||leader||BOOLEAN |
| 118 | | ||role_id||FK|| |
| | 106 | ||PRIMARY KEY||(person_id,location_id,location_type)|| |
| | 107 | ||KEY||IDX_person_location1(location_id,location_type)|| |
| | 108 | ||KEY||IDX_person_location2(person_id)|| |
| | 109 | |
| | 110 | '''incident''' |
| | 111 | ||incident_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 112 | ||planned||BOOL|| |
| | 113 | ||descriptiion||TEXT|| |
| | 114 | ||comments||TEXT|| |
| | 115 | ||activation_code||VARCHAR(10)|| |
| | 116 | ||incident_primary_contact||INTEGER(8)||UNSIGNED|| |
| | 117 | ||PRIMARY KEY||(incident_id)|| |
| | 118 | ||UNIQUE KEY||IDX_incident1(incident_id)|| |
| | 119 | COMMENT='planned events,training,emergencies,shelters,etc.'; |
| | 120 | |
| | 121 | '''tag''' |
| | 122 | ||tag_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 123 | ||description||TEXT|| |
| | 124 | ||PRIMARY KEY||(tag_id)|| |
| | 125 | ||UNIQUE KEY||IDX_tag1(tag_id)|| |
| | 126 | COMMENT='Tags used in Twitter,etc.'; |
| | 127 | |
| | 128 | '''incident_tag''' |
| | 129 | ||incident_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 130 | ||tag_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 131 | ||PRIMARY KEY||(incident_id,tag_id)|| |
| | 132 | ||KEY||IDX_incident_tag1(incident_id)|| |
| | 133 | ||KEY||IDX_incident_tag2(tag_id)|| |
| | 134 | |
| | 135 | '''event''' |
| | 136 | ||event_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 137 | ||category_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 138 | ||event_type_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 139 | ||description||TEXT|| |
| | 140 | ||PRIMARY KEY||(event_id,category_id,event_type_id)|| |
| | 141 | ||KEY||IDX_event1(category_id)|| |
| | 142 | ||KEY||IDX_event2(event_type_id)|| |
| | 143 | ||UNIQUE KEY||IDX_event3(event_id,category_id,event_type_id)|| |
| | 144 | COMMENT='Things that happen before,during,after incidents. Command change,assessment,assignment,relief,demobilize,rehab'; |
| | 145 | |
| | 146 | '''event_category''' |
| | 147 | ||category_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 148 | ||category_name||VARCHAR(40)|| |
| | 149 | ||description||TEXT|| |
| | 150 | ||PRIMARY KEY||(category_id)|| |
| | 151 | ||UNIQUE KEY||IDX_Entity_11(category_name)|| |
| | 152 | ||UNIQUE KEY||IDX_event_category2(category_id)|| |
| | 153 | COMMENT='Categories refer to incident resources - people,communications,equipment,supplies.'; |
| | 154 | |
| | 155 | '''event_type''' |
| | 156 | ||event_type_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 157 | ||event_type_name||VARCHAR(40)|| |
| | 158 | ||description||TEXT|| |
| | 159 | ||PRIMARY KEY||(event_type_id)|| |
| | 160 | ||UNIQUE KEY||IDX_event_type1(event_type_id)|| |
| | 161 | COMMENT='Specific things that happen - assign people, make assessment, identify hazard,etc.'; |
| | 162 | |
| | 163 | '''incident_event''' |
| | 164 | ||incident_event_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 165 | ||incident_id||INTEGER(8)||UNSIGNED|| |
| | 166 | ||event_id||INTEGER(8)||UNSIGNED|| |
| | 167 | ||person_id||INTEGER(8)||UNSIGNED|| |
| | 168 | ||role_id||INTEGER(8)||UNSIGNED|| |
| | 169 | ||location_id||INTEGER(8)||UNSIGNED|| |
| | 170 | ||resource_id||INTEGER(8)||UNSIGNED|| |
| | 171 | ||location_type||ENUM('home,work,incident,organization,company,division,shelter,camp,command||post,resource')|| |
| | 172 | ||category_id||INTEGER(8)||UNSIGNED|| |
| | 173 | ||event_type_id||INTEGER(8)||UNSIGNED|| |
| | 174 | ||starting_time||DATETIME||NOT NULL|| |
| | 175 | ||authority||INTEGER(8)||UNSIGNED|| |
| | 176 | ||communications_channel||INTEGER(8)||UNSIGNED|| |
| | 177 | ||comm_channel_id||INTEGER(8)||UNSIGNED|| |
| | 178 | ||tactical_name||VARCHAR(40)|| |
| | 179 | ||ending_time||DATE|| |
| | 180 | ||PRIMARY KEY||(incident_event_id)|| |
| | 181 | ||UNIQUE KEY||IDX_incident_event1(incident_id,event_id)|| |
| | 182 | ||KEY||IDX_incident_event2(person_id)|| |
| | 183 | ||KEY||IDX_incident_event3(location_id,location_type)|| |
| | 184 | ||KEY||IDX_incident_event4(event_id,category_id,event_type_id)|| |
| | 185 | ||KEY||IDX_incident_event5(incident_id)|| |
| | 186 | ||KEY||IDX_incident_event6(authority)|| |
| | 187 | ||KEY||IDX_incident_event7(comm_channel_id)|| |
| | 188 | ||KEY||IDX_incident_event8(role_id)|| |
| | 189 | COMMENT='Logging'; |
| | 190 | |
| | 191 | '''communication_channel''' |
| | 192 | ||comm_channel_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 193 | ||channel_type||ENUM('HF,VHF,UHF,FRS')||NOT NULL|| |
| | 194 | ||tone||ENUM('#1 67.0,#2 71.9,#3 74.4,#4 77.0,#5 79.7,#6 82.5,#7 85.4,#8 88.5,#9 91.5,#10 94.8,#11 97.4,#12 100.0,#13 103.5,#14 107.2,#15 110.9,#16 114.8,#17 118.8,#18 123.0,#19 127.3,#20 131.8,#21 136.5,#22 141.3,#23 146.2,#24 151.4,#25 156.7,#26 162.2,#27 167.9,#28 173.8,#29 179.9,#30 186.2,#31 192.8,#32 203.5,#33 210.7,#34 218.1,#35 225.7,#36 233.6,#37 241.8,#38 250.3)|||| |
| | 195 | ||repeater_id||VARCHAR(10)|| |
| | 196 | ||repeater_offset||SMALLINT|| |
| | 197 | ||PRIMARY KEY||(comm_channel_id)|| |
| | 198 | ||UNIQUE KEY||IDX_communication_channel1(comm_channel_id))|| |
| | 199 | COMMENT='Ham and FRS frequencies,PLs,etc.'; |
| | 200 | |
| | 201 | '''liaison''' |
| | 202 | ||liaison_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 203 | ||person_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 204 | ||organization_id1||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 205 | ||organization_id2||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 206 | ||when_assigned||DATETIME||NOT NULL|| |
| | 207 | ||when_relieved||DATETIME|| |
| | 208 | ||PRIMARY KEY||(liaison_id)|| |
| | 209 | ||UNIQUE KEY||IDX_Entity_11(person_id,organization_id1,organization_id2,when_assigned)|| |
| | 210 | ||KEY||IDX_liaison2(person_id)|| |
| | 211 | ||UNIQUE KEY||IDX_liaison3(organization_id1)|| |
| | 212 | ||UNIQUE KEY||IDX_liaison4(organization_id2)|| |
| | 213 | |
| | 214 | '''organization''' |
| | 215 | ||organization_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 216 | ||organization_name||VARCHAR(100)||NOT NULL|| |
| | 217 | ||organization_phone||INTEGER(8)||UNSIGNED|| |
| | 218 | ||organization_type||ENUM('business,foundation,elected government,government agency,utility,public works,school,medical care,NGO,law enforcement,fire,EMS,religious,search and rescue,hazmat,agricultural,food,building supplies,demolition,long-term recovery,child care,senior care,human services,logistics,communications,disabled care')|| |
| | 219 | ||vulnerable||ENUM('no,elderly,child,infant,disabled')|| |
| | 220 | ||donor||BOOL|| |
| | 221 | ||parent_organization||INTEGER(8)||UNSIGNED|| |
| | 222 | ||geographic_scope||ENUM('neighborhood,city,county,region,state,national,global')|| |
| | 223 | ||geographic_scope_name||VARCHAR(40)|| |
| | 224 | ||liaison_id||INTEGER(8)||UNSIGNED|| |
| | 225 | ||page_id||VARCHAR(40)||NOT NULL|| |
| | 226 | ||location_id||INTEGER(8)||UNSIGNED|| |
| | 227 | ||phone_id||INTEGER(8)||UNSIGNED|| |
| | 228 | ||PRIMARY KEY||(organization_id)|| |
| | 229 | ||UNIQUE KEY||IDX_Entity_11(organization_name)|| |
| | 230 | ||KEY||IDX_organization2(organization_id,page_id)|| |
| | 231 | ||KEY||IDX_organization3(organization_id)|| |
| | 232 | ||KEY||IDX_organization4(organization_id,location_id)|| |
| | 233 | ||KEY||IDX_organization5(organization_id,phone_id)|| |
| | 234 | |
| | 235 | '''person_language''' |
| | 236 | ||person_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 237 | ||language_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 238 | ||fluency||ENUM('mininal,conversational,advanced,native/fluent')||NOT NULL|| |
| | 239 | ||english_translator||BOOL|| |
| | 240 | ||PRIMARY KEY||(person_id)|| |
| | 241 | ||UNIQUE KEY||IDX_person_language1(person_id)|| |
| | 242 | |
| | 243 | '''language''' |
| | 244 | ||language_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 245 | ||language_name||VARCHAR(50)||NOT NULL|| |
| | 246 | ||person_id||INTEGER(8)||UNSIGNED|| |
| | 247 | ||PRIMARY KEY||(language_id)|| |
| | 248 | ||KEY||IDX_language1(person_id)|| |
| | 249 | |
| | 250 | '''organization_page''' |
| | 251 | ||organization_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 252 | ||page_id||VARCHAR(40)||NOT NULL|| |
| | 253 | ||PRIMARY KEY||(organization_id,page_id)|| |
| | 254 | ||UNIQUE KEY||IDX_organization_page1(organization_id,page_id)|| |
| | 255 | |
| | 256 | '''page''' |
| | 257 | ||page_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 258 | ||url||VARCHAR(255)|| |
| | 259 | ||description||VARCHAR(100)|| |
| | 260 | ||page_type||ENUM('Twitter,Facebook,YouTube,Wiki,Personal,Home')||NOT NULL|| |
| | 261 | ||organization_id||INTEGER(8)||UNSIGNED|| |
| | 262 | ||person_id||INTEGER(8)||UNSIGNED|| |
| | 263 | ||PRIMARY KEY||(page_id)|| |
| | 264 | ||KEY||IDX_page1(organization_id,page_id)|| |
| | 265 | ||KEY||IDX_page2(person_id,page_id)|| |
| | 266 | |
| | 267 | '''person_organization''' |
| | 268 | ||person_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 269 | ||organization_id||ENUM('PIO,Safety,Operations,Planning,Logistics,Intelligence,Finance/Admin')||NOT NULL|| |
| | 270 | ||role_id||INTEGER(8)||UNSIGNED|| |
| | 271 | ||active||BOOL|| |
| | 272 | ||leader||BOOL|| |
| 127 | | |
| 128 | | '''PERSON_EMAIL''' |
| 129 | | ||person_id||PK, FK|| |
| 130 | | ||email_id||PK, FK|| |
| 131 | | |
| 132 | | '''PHONE''' |
| 133 | | # Can belong to person, organization, resource |
| 134 | | ||phone_id||PK|| |
| 135 | | ||phone_type||ENUM(home, work, mobile, other)|| |
| 136 | | ||country_code||INT|| |
| 137 | | ||area_code||INT|| |
| 138 | | ||phone_number||INT|| |
| 139 | | ||extension||INT|| |
| 140 | | ||service_provider||CHAR|| |
| 141 | | ||confidential||BOOLEAN|| |
| 142 | | ||primary||BOOLEAN|| |
| 143 | | ||24_7||BOOLEAN|| |
| 144 | | ||last_updated||DATE|| |
| 145 | | ||organization_id||FK|| |
| 146 | | ||resource_id||FK|| |
| 147 | | ||time_of_day||ENUM(any, day, night)|| |
| 148 | | ||comments||TEXT|| |
| 149 | | |
| 150 | | '''PERSON_PHONE''' |
| 151 | | ||person_id||PK, FK|| |
| 152 | | ||phone_id||PK, FK|| |
| 153 | | |
| 154 | | '''CREDENTIAL''' |
| 155 | | |
| 156 | | # Any kind of certificate, training, other prerequisite associated with a person |
| 157 | | ||credential_id||PK|| |
| 158 | | ||credential_name||CHAR|| |
| 159 | | ||credential_description||TEXT|| |
| 160 | | ||credential_type||ENUM(communications, ICS, EMS, SAR, CERT, vaccination...)|| |
| 161 | | |
| 162 | | '''PERSON_CREDENTIAL''' |
| 163 | | ||person_id||PK, FK|| |
| 164 | | ||credential_id||PK, FK|| |
| 165 | | ||issuing_organization_id||PK, FK|| |
| 166 | | ||completion_date||DATE|| |
| 167 | | ||verified_by||FK person_id|| |
| 168 | | ||verified_date||DATE|| |
| 169 | | ||credential_expires||DATE|| |
| 170 | | ||credential_certificate_id||CHAR|| |
| 171 | | |
| 172 | | '''INCIDENT''' |
| 173 | | ||incident_id||PK|| |
| 174 | | ||incident_name||TEXT|| |
| 175 | | ||planned||BOOLEAN|| |
| 176 | | ||incident_description||TEXT|| |
| 177 | | ||incident_comments||TEXT|| |
| 178 | | ||activation_code||CHAR|| |
| 179 | | ||incident_contact||FK person_id|| |
| 180 | | ||incident_type_id||FK|| |
| 181 | | ||location_id||FK|| |
| 182 | | ||address_id||FK|| |
| 183 | | ||incident_page||FK page_id|| |
| 184 | | ||twitter_hashtag|||| |
| 185 | | |
| 186 | | '''INCIDENT_TYPES''' |
| 187 | | ||incident_type_id||PK|| |
| 188 | | ||incident_category||ENUM (preparedness, response)|| |
| 189 | | ||incident_type||ENUM(fire, flood, earthquake, medical, evacuation, terrorism, other emergency, critical incident debrief, operational debrief, class, seminar, workshop, game, training, table-top exercise, functional exercise, full-scale exercise)|| |
| 190 | | ||incident_geography||ENUM(neighborhood, city, county, region, state, national, global)|| |
| 191 | | |
| 192 | | '''PAGE''' |
| 193 | | # web pages |
| 194 | | ||page_id||PK|| |
| 195 | | ||URL||CHAR|| |
| 196 | | ||title||CHAR|| |
| 197 | | ||description||TEXT|| |
| 198 | | ||last_reviewed||DATE|| |
| 199 | | |
| 200 | | '''PERSON_PAGE''' |
| 201 | | ||person_id||PK, FK|| |
| 202 | | ||page_id||PK, FK|| |
| 203 | | ||page_type||ENUM(Personal, Twitter, Facebook, YouTube, other|| |
| 204 | | |
| 205 | | '''PERSON_INCIDENT''' |
| 206 | | |
| 207 | | # This belongs with logging... |
| 208 | | ||person_id||PK, FK|| |
| 209 | | ||incident_id||PK, FK|| |
| 210 | | ||notified||DATETIME|| |
| 211 | | ||committed||DATETIME|| |
| 212 | | ||committed_by||FK person_id || |
| 213 | | ||arrived||DATETIME|| |
| 214 | | ||departed||DATETIME|| |
| 215 | | ||met_requirements||BOOLEAN|| |
| 216 | | ||verified_by||FK person_id|| |
| 217 | | |
| 218 | | '''INCIDENT_ROLE''' |
| 219 | | |
| 220 | | # Volunteer slots to be filled |
| 221 | | ||incident_id||PK, FK|| |
| 222 | | ||role_id||PK, FK|| |
| 223 | | ||shift_id||PK, INT|| |
| 224 | | ||starting||DATETIME|| |
| 225 | | ||ending||DATETIME|| |
| 226 | | ||people_needed||INT|| |
| 227 | | |
| 228 | | '''INCIDENT_EVENT''' |
| 229 | | |
| 230 | | # Logging - most of this will probably happen on paper, then transcribed |
| 231 | | ||event_id||PK|| |
| 232 | | ||event_type||ENUM(person, resource, objective, assessment, situation report, status_report, strategy, intelligence, incident location, incident command, incident base, joint information center)|| |
| 233 | | ||incident_id||FK|| |
| 234 | | ||person_id||FK|| |
| 235 | | ||person_event||ENUM (notified, en-route, checked_in, assigned, rehab, demobilized, available)|| |
| 236 | | ||role_id||FK|| |
| 237 | | ||address_id||FK|| |
| 238 | | ||resource_id||FK|| |
| 239 | | ||authority||FK person_id|| |
| 240 | | ||incident_timestamp||DATETIME|| |
| 241 | | ||public||BOOLEAN|| |
| 242 | | ||incident_communications_primary||CHAR|| |
| 243 | | ||incident_communications_secondary||CHAR|| |
| 244 | | ||comment||TEXT|| |
| 245 | | |
| 246 | | '''ROLE_PREREQUISITE''' |
| 247 | | |
| 248 | | # qualifications, training, etc. |
| 249 | | ||incident_id||PK, FK|| |
| 250 | | ||role_id||PK, FK|| |
| 251 | | ||prerequisite_id||FK|| |
| 252 | | ||required||ENUM(True, recommended)|| |
| 253 | | |
| 254 | | '''CURRICULUM''' |
| 255 | | |
| 256 | | # Series of classes that typically would be taken together |
| 257 | | # Curriculum itself becomes a prerequisite |
| 258 | | ||curriculum_id||PK|| |
| 259 | | ||curriculum_name||CHAR|| |
| 260 | | ||incident_id||FK|| |
| 261 | | ||recommended_sequence||INT|| |
| 262 | | ||required||ENUM(Yes, Recommended|| |
| 263 | | |
| 264 | | '''ASSIGNMENT''' |
| 265 | | ||assignment_id||PK|| |
| 266 | | ||incident_id||PK, FK|| |
| 267 | | ||assignment_description||TEXT|| |
| 268 | | |
| 269 | | '''ASSIGNMENT_PERSON''' |
| 270 | | |
| 271 | | # Move into logging... |
| 272 | | ||assignment_id||PK, FK|| |
| 273 | | ||person_id||PK, FK|| |
| 274 | | ||assigned_when||DATETIME|| |
| 275 | | ||removed_when||DATETIME|| |
| 276 | | |
| 277 | | '''ORGANIZATION''' |
| 278 | | |
| 279 | | # Companies, government agencies, etc. - association or group of people with like objectives |
| 280 | | ||organization_id||PK|| |
| 281 | | ||organization_name||CHAR|| |
| 282 | | ||organization_phone||FK|| |
| 283 | | ||organization_page||FK|| |
| 284 | | ||organization_type||ENUM(company, foundation, government agency, NGO, responder)|| |
| 285 | | ||organization_purpose||ENUM(medical, supplies, elder care, child care, church, shelter, school, public works, communications, transportation, firefighting, emergency management, mass care/emergency assistance/housing/human services, logistics, public health, SAR, hazardous materials, agriculture/natural resources, energy, law enforcement, long-term recovery)|| |
| 286 | | ||vulnerable_population||ENUM (children, elderly, disabled)|| |
| 287 | | ||donor||BOOLEAN|| |
| 288 | | ||parent_organization||FK organization_id|| |
| 289 | | ||organization_scope||ENUM(neighborhood, city, county, state, national, global)|| |
| 290 | | |
| 291 | | '''ORGANIZATION_SERVICE_AREA''' |
| 292 | | |
| 293 | | # Geographic description of areas that an organization serves: TBD |
| 294 | | |
| 295 | | '''ORGANIZATION_PAGE''' |
| 296 | | ||organization_id||PK, FK|| |
| 297 | | ||page_id||PK, FK|| |
| 298 | | ||description||TEXT|| |
| 299 | | |
| 300 | | '''RESOURCE''' |
| 301 | | ||resource_id||PK|| |
| 302 | | ||resource_name||CHAR|| |
| 303 | | ||resource_page||FK page_id|| |
| 304 | | ||resource_type||ENUM(web site, park, storage, fire station, gas station, atm, water)|| |
| 305 | | ||resource_scope||ENUM(neighborhood, city, county, state, national, global)|| |
| 306 | | ||category||ENUM(training, operations, discussion, communications)|| |
| 307 | | |
| 308 | | '''RESOURCE_LOCATION''' |
| 309 | | ||resource_id||PK, FK|| |
| 310 | | ||location_id||PK, FK|| |
| 311 | | |
| 312 | | '''RESOURCE_PERSON''' |
| 313 | | ||resource_id||PK, FK|| |
| 314 | | ||person_id||PK, FK|| |
| 315 | | ||primary_contact||BOOLEAN |
| 316 | | |
| 317 | | '''RESOURCE_ORGANIZATION''' |
| 318 | | ||resource_id||PK, FK|| |
| 319 | | ||organization_id||PK, FK|| |
| 320 | | |
| 321 | | '''DIVISION''' |
| 322 | | |
| 323 | | # this needs to be generalized to include neighborhood teams? |
| 324 | | ||division_id||PK|| |
| 325 | | ||division_number|||| |
| 326 | | ||division_name||CHAR|| |
| 327 | | ||division_command_address_id||FK|| |
| 328 | | ||primary_frs_channel|||| |
| 329 | | ||primary_frs_pl|||| |
| 330 | | ||tactical_frs_channel|||| |
| 331 | | ||tactical_frs_pl|||| |
| | 312 | ||person_id||INTEGER(8)||UNSIGNED|| |
| | 313 | ||organization_id||INTEGER(8)||UNSIGNED|| |
| | 314 | ||PRIMARY KEY||(phone_id)|| |
| | 315 | ||KEY||IDX_phone1(person_id,phone_id)|| |
| | 316 | ||KEY||IDX_phone2(organization_id,phone_id)|| |
| | 317 | |
| | 318 | '''credential''' |
| | 319 | ||credential_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 320 | ||credential_name||VARCHAR(50)||NOT NULL|| |
| | 321 | ||credential_description||TEXT||NOT NULL|| |
| | 322 | ||credential_type||ENUM('communications,ICS,EMS,SAR,CERT,vaccination')||NOT NULL|| |
| | 323 | ||person_id||INTEGER(8)||UNSIGNED|| |
| | 324 | ||PRIMARY KEY||(credential_id)|| |
| | 325 | ||KEY||IDX_credential1(person_id,credential_id)|| |
| | 326 | |
| | 327 | '''person_credential''' |
| | 328 | ||person_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 329 | ||credential_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 330 | ||issue_date||DATE||NOT NULL|| |
| | 331 | ||expires||DATE|| |
| | 332 | ||image||BLOB|| |
| | 333 | ||verified_by||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 334 | ||PRIMARY KEY||(person_id,credential_id)|| |
| | 335 | ||UNIQUE KEY||IDX_person_credential1(person_id,credential_id)|| |
| | 336 | |
| | 337 | '''person_phone''' |
| | 338 | ||person_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 339 | ||phone_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 340 | ||phone_type||ENUM('home,work,organization,other')||NOT NULL|| |
| | 341 | ||PRIMARY KEY||(person_id,phone_id)|| |
| | 342 | ||UNIQUE KEY||IDX_person_phone1(person_id,phone_id)|| |
| | 343 | |
| | 344 | '''organization_phone''' |
| | 345 | ||organization_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 346 | ||phone_id||INTEGER(8)||UNSIGNED||NOT NULL|| |
| | 347 | ||phone_purpose||VARCHAR(75)|| |
| | 348 | ||PRIMARY KEY||(organization_id,phone_id)|| |
| | 349 | ||UNIQUE KEY||IDX_organization_phone1(organization_id,phone_id)|| |