Start
Project Piggybank
In deze les gaan we nog een laatste maal hands-on met databases.
Als je het goed doet, komen alle aspecten nog een keer terug; het normaliseren, sql als select en insert into, maar ook joins en relaties komen aan bod.
Wat gaan we doen?
We gaan een banksysteem bouwen. In je woonplaats staat een nieuwe bank genaamd PiggyBank. Bij deze bank kun je veilig je geld wegzetten.
Je maakt een mini-website, waarin je een overzicht van alle rekeningen ziet, per rekening een overzicht kan opvragen van bij- en afschrijvingen, en zelf ook nieuwe transacties (overboekingen) kan doen.
Overboekingen kunnen alleen intern. Iedereen in jouw stad moet dus lid worden van deze bank ;)
Klik op Volgende om te doen hoe we het gaan aanpakken...
Piggy-Bank
Uitleg Project PiggyBank
Stap 1: De Database
Zoals gelezen op de vorige pagina, maak je een kleine website met een aantal functies.
Voordat het zover is, moeten we eerst helder krijgen welke gegevens we in de databases willen.
Dataset
Vooraf is al bekend geworden dat er met deze dataset gewerkt moet worden. Als je functionaliteit mist, voeg je deze toe.
telefoonnr, adres, klantnaam, klantnr, woonplaats, rekeningnr, rekeningnaam, roodstaan, transactieid, rekeningnr, tegenrekening, bedrag, datum, balansnatransactie
Orden en normaliseer deze gegevens, zorg dat er 3 tabellen ontstaan: klanten, rekeningen, transacties
Maak deze tabellen aan in een nieuwe database, die je piggybank noemt.
Relaties
Je brengt ook relaties aan tussen je tabellen.
Gebruik als voorbeeld dit stuk SQL:
ALTER TABLE tabelnaam
ADD CONSTRAINT fk_kolomnaam
FOREIGN KEY (
kolomnaam)
REFERENCES tabelnaam(
kolomnaam)
Leg deze relaties:
1. Er kan alleen een rekeningnummer aangemaakt worden voor een bestaande klant. (De tabel klanten moet dus gekoppeld worden met de tabel rekeningen)
2. Bij een nieuwe transactie, kan er alleen voor bestaande rekeningnummers gekozen worden. (De tabel transacties, moet dus gekoppeld worden aan de tabel rekeningen.)
Vul je tabellen klanten, en rekeningen vast met wat data!
Je website
Zie de afbeeldingen hierover voor voorbeeld hoe je websiteje eruit kan zien.
Zorg in ieder geval dat je dit kunt:
- Overzicht kan krijgen van alle rekeningnummers + bijhorende klantnamen.
- Overzicht kan krijgen voor een specifiek rekeningnummer. Geef alle transacties. (Zoals Internetbankieren ook werkt)
- Nieuwe transacties kan invoeren. Dus een overschrijving tussen 2 bestaande rekeningen.
Alleen als je bovenstaande voor elkaar hebt:
- Zorg dat je via de website ook nieuwe klanten kan toevoegen.
- Zorg dat je voor een klant ook rekeningen kan toevoegen.
- Als je nog tijd over hebt, zie de pagina 'Klaar'.
Heel veel plezier gewenst!
Klaar!?
Jij bent snel!
Om je Piggybank nog wat uitdagender te maken, gaan kunnen we nog wat functionaliteit toevoegen:
Rood Staan
Zoals je weet, staat er in de database een veld waarin wordt geregistreerd of iemand rood mag staan.
Zorg ervoor dat als in dit veld op FALSE staat, iemand niet een overboeking kan doen, waarmee hij/zij in het rood komt te staan.
IBAN Check
Zoek je nog meer uitdaging?
Maak dan een script, waarin je een IBAN rekeningnummer kan valideren, en bouw dit in je PiggyBank in, als je een een nieuw rekeningnummer toevoegd aan een klant.
De eisen waaraan een geldig IBAN voldoet, kun je op Wikipedia vinden. Lees dit even zorgvuldig.
Uiteraard programmeer je deze check-module zelf, en gebruik je niet iets wat al bestaat.
Als je klaar bent, zou je je eigen rekeningnummers kunnen toevoegen, maar een zelf bedacht nummer niet.