Skip to content

database

System Administrator edited this page May 27, 2021 · 2 revisions

Database

Database model

Mijn database bestaat uit drie collections namelijk Users, Doggos en Locations. Deze collections staan hieronder individueel uitgelicht. Ik maak gebruik van MongoDB Atlas voor het hosten van mijn database. Ik vul de collections van mijn database met het programma MongoDB Compass.

Database model

Users

In de Users collection staat de informatie van mijn gebruikers in opgeslagen. Het aanmaken van een account was geen onderdeel van mijn feature, vandaar dat er in deze collection maar één gebruiker is opgeslagen. Voor deze gebruiker worden een aantal dingen opgeslagen.

  • Een id.
  • De naam van de gebruiker.
  • De id's van de honden die de gebruiker een like heeft gegeven.
  • De id's van de honden die de gebruiker een dislike heeft gegeven.
  • Een object met daarin de parameters van de laatst uitgevoerde zoekopdracht.

De liked en disliked arrays worden door mijn server geüpdatet wanneer de gebruiker een hond een like of dislike geeft. Een voorbeeld van een gebruiker staat hieronder.

{
  "id": 1,
  "name": "Stein Bergervoet",
  "liked_doggos": [1, 2, 3],
  "disliked_doggos": [4, 5],
  "last_query": {}
}

Het laatste object gebruik ik op de homepagina. Zodra de gebruiker een zoekopdracht uitvoert worden hiervan de parameters in dit object opgeslagen. Hiermee kan er vervolgens op de homepagina de resultaten van deze oude zoekopdracht weergeven. Wanneer de gebruiker per ongeluk zijn browser refreshed zal zijn zoekopdracht niet verloren gaan. Als de gebruiker een nieuwe zoekopdracht uitvoert wordt de oude zoekopdracht overschreven. Zo kan de gebruiker telkens de resultaten zijn laatste zoekopdracht zien.

Doggos

In de Doggos collection wordt de informatie van de honden van de gebruikers opgeslagen. Per hond wordt al de informatie opgeslagen die mijn applicatie nodig heeft. Voor elke hond wordt het volgende opgeslagen.

  • Een id.
  • De naam van de hond.
  • De leeftijd van de hond.
  • Het ras van de hond.
  • Een link naar een foto van de hond.
  • Een link naar de profiel foto van de hond.
  • De vibes van de hond.
  • Een korte beschrijving van de hond.
  • Het id van de locatie waar de gebruiker graag met zijn hond naar toe gaat.

Een voorbeeld van een hond staat hieronder.

{
  "id": 1,
  "name": "Kenji",
  "age": 6,
  "breed": "Shiba Inu",
  "image_link": "/public/images/doge_example_kenji.png",
  "profile_image_link": "/public/images/doge_example_kenji_profile.png",
  "doge_vibe": ["relaxed", "cute", "fluffy"],
  "description": "Heyo, dit is mijn Shiba Inu Kenji. Hij houd erg van andere honden en buiten spelen!",
  "location_id": 1
}

Locations

In de Locations collection wordt de informatie van de locaties opgeslagen. Deze informatie is in de huidige versie van mijn applicatie nog redelijk statisch. Zo wordt de afstand van de locatie tot de gebruiker met een string weergegeven. Per locatie wordt het volgende opgeslagen.

  • Een id.
  • De naam van de locatie.
  • De afstand van de locatie tot de gebruiker.
  • Het type van de locatie.

Een voorbeeld van een locatie staat hieronder vermeld.

{
  "id": 1,
  "name": "Het Amsterdamse Bos",
  "distance": "400m",
  "type": "forest"
}
Clone this wiki locally