...
In het deployment diagram is te zien dat de backend en frontend in dezelfde springboot server staan. Dit is gedaan zodat de hele applicatie op 1 server kan functioneren. Ook staat deze springboot server al in een JDI Server, aangezien dit een plek is waar de applicatie waarschijnlijk op gaat draaien. De database server is echter nog niet bekend en daarom heet die dan ook gewoon database server.
...
Design decisions related to the database
...
Hieronder de beslissingen die wij hebben genomen met betrekking tot de database:
Decision | Description |
---|---|
Problem/Issue | Het opslaan van de dag bij werktijden. |
Decision | Bij het oplsaan van de dag hebben wij ervoor gekozen om dit te doen als een int in plaats van een string met daadwerkelijk: 'maandag', 'dinsdag' etc. |
Alternatives | Het wel opslaan als strings. |
Arguments | We hebben hiervoor gekozen omdat het zo makkelijker was voor zowel de frontend en de backend om er doorheen te kunnen lopen met bijv loops. |
Decision | Description |
---|---|
Problem/Issue | Het ophalen van een verlof aanvraag of declaratie. |
Decision | In eerste instantie hadden wij primary keys opgesteld die bestond uit meerde kolommen, uiteindelijk hebben we ervoor gekozen een ID kolom toe te voegen. |
Alternatives | Het laten als een collectie van kolommen. |
Arguments | We hebben hiervoor gekozen omdat het zo makkelijker was om ze op te halen en je minder gegevens nodig had in zowel de front als backend om dit voor elkaar te krijgen. |
Decision | Description |
---|---|
Problem/Issue | Afstanden berekenen voor een declaratie d.m.v. de Google API. |
Decision | Wij hebben ervoor gekozen een route tabel aan te maken om zo afstanden van routes op te slaan zodat we de Google API zo min mogelijk aan roepen om requests te besparen. |
Alternatives | Telkens de API aanroepen om de meest up to date afstand te krijgen. |
Arguments | We hebben hiervoor gekozen omdat we op deze manier requests besparen naar de API, je kan maar een bepaald aantal requests gratis doen voordat je moet gaan betalen. |
Decision | Description |
---|---|
Problem/Issue | Afstanden uit routes halen. |
Decision | Wij hebben ervoor gekozen om de route tabel los te koppelen van de declaratie tabel, eerst waren deze gekoppeld. |
Alternatives | Routes wel koppelen aan de declaratie tabel. De foreign key op no action zetten. |
Arguments | We hebben hiervoor gekozen omdat we de declaraties los wouden hebben staan van de routes, als een route veranderd of weg gaat willen wij dat dit niks veranderd aan de al bestaande declaraties. |
Decision | Description |
---|---|
Problem/Issue | Adressen oplaan om de afstanden te berekenen. |
Decision | Wij hebben ervoor gekozen om ook coordinaten op te slaan. |
Alternatives | Het adres gebruiken. |
Arguments | We hebben hiervoor gekozen omdat het met coordinaten is meer precies is en er ook geen probleem kan voorkomen als er 2 straten zijn die hetzelfde heten per ongeluk verward worden. |
Decision | Description |
---|---|
Problem/Issue | Start en eindtijd van een verlof aanvraag opslaan. |
Decision | Wij hebben ervoor gekozen om de start en eindtijd op te slaan als een int. |
Alternatives | Een start en eind datetime gebruiken in plaats van ze opsplitsen. |
Arguments | We hebben hiervoor gekozen omdat het berekenen van de uren makkelijker ging met als ze een int waren. |
Decision | Description |
---|---|
Problem/Issue | Bij de tabellen locatie, reiskostenDeclaratie, verlof en tarief zijn er types en soorten. |
Decision | Wij hebben ervoor gekozen om hier checks op te zetten. |
Alternatives | Geen checks gebruiken. |
Arguments | We hebben hiervoor gekozen om ervoor te zorgen dat iedereen dezelfde standaard gebruikt en deze overal overeen komen. |
Decision | Description |
---|---|
Problem/Issue | Werknemers mogen wel meerdere klanten reizen maken op een dag maar niet meer dan 1 thuiswerk of woon-werk op een dag. |
Decision | Wij hebben ervoor gekozen om hier checks op te zetten met een functie die kijkt of als de declaratie thuis of woon-werk is, kijkt of er al een bestaat van een van die types. |
Alternatives | Geen check gebruiken. |
Arguments | We hebben hiervoor gekozen om ervoor te zorgen dat het inserten hiervan altijd goed verloopt en er geen declaraties in komen die er dus niet in zouden mogen staan. |