Databasemodell - aTrueYety/idatt2106-2025-09-backend GitHub Wiki
Databasemodell
Denne siden beskriver databasemodellen for applikasjonen. Den viser hvordan informasjon om brukere, husholdninger, matvarer, ekstra beboere, hendelser og kartobjekter mm. er strukturert og koblet sammen i relasjonelle tabeller.
ER-diagram
Diagrammet nedenfor gir en visuell oversikt over tabellenes relasjoner. For best lesbarhet anbefales det å åpne bildet i full størrelse.
Tabeller og struktur
user
1. - Primærnøkkel:
id
- Felt:
username
,email
,password
,first_name
,last_name
,household_id
,is_admin
,is_super_admin
,email_confirmed
,share_position_household
,share_position_group
,picture
- Relasjon: Valgfri kobling til
household
. Hvis husholdningen slettes, setteshousehold_id
tilNULL
.
household
2. - Primærnøkkel:
id
- Felt:
name
,adress
,latitude
,longitude
,amount_water
,last_water_change
food_type
3. - Primærnøkkel:
id
- Felt:
name
,unit
,calories_per_unit
,picture
food
4. - Primærnøkkel:
id
- Felt:
type_id
,household_id
,expiration_date
,amount
- Relasjoner:
- Kobling til
food_type
- Kobling til
household
- Kobling til
extra_resident_type
5. - Primærnøkkel:
id
- Felt:
name
,consumption_water
,consumption_food
extra_resident
6. - Primærnøkkel:
id
- Felt:
household_id
,type_id
,name
- Relasjoner:
- Kobling til
extra_resident_type
- Kobling til
household
- Kobling til
map_object_type
7. - Primærnøkkel:
id
- Felt:
name
,icon
map_object
8. - Primærnøkkel:
id
- Felt:
type_id
,latitude
,longitude
,opening
,closing
,contact_phone
,contact_email
,contact_name
,description
,picture
- Relasjon: Kobling til
map_object_type
severity
9. - Primærnøkkel:
id
- Felt:
colour
,name
,description
info_page
10. - Primærnøkkel:
id
- Felt:
title
,short_description
,content
,created_at
,updated_at
event
11. - Primærnøkkel:
id
- Felt:
info_page_id
,name
,latitude
,longitude
,radius
,start_time
,end_time
,severity_id
,recomendation
- Relasjoner:
- Valgfri kobling til
info_page
- Kobling til
severity
- Valgfri kobling til
Alle datatyper er basert på SQL/MySQL. Blob brukes for å lagre bilder direkte i databasen (som for
user.picture
ellerfood_type.picture
). Tidsstempler og datoer brukes til å logge endringer og spore utløpsdatoer.