In dit hoofdstuk ga je een soort toevoegen aan elk product. Soort is een voorbeeld van een 1:N-relatie.
4.1Uitleg: Tabellen met 1:N-relatie maken¶
4.2Opdracht: Voeg soort artikel toe aan de database¶
In deze opdracht ga je een soort (Engels: category) toevoegen aan elk artikel in de database. Elk artikel is van één soort. Een soort heeft één of meer artikelen.
De soort wordt niet automatisch zichtbaar in je webshop, dat doen we in de volgende opdracht.
Tips
- Gebruik de SQL-opdracht
CREATE TABLE
- Na een aanpassing moet je de database opnieuw maken met het terminal-commando
bash start.sh
. Let op of er foutmeldingen in de terminal verschijnen. - Als je geen producten meer ziet in je shop, dan heb je waarschijnlijk een fout gemaakt waardoor de webshop de database niet opnieuw kan maken. Bekijk de foutmeldingen in de terminal.
Tips
- gebruik de SQL-opdracht
INSERT INTO
Tips
- Voeg de verwijzende sleutel en de constraint toe aan de tabel
products
. - De verwijzende sleutel heeft het datatype
INTEGER
. - De contraint is van de vorm met
FOREIGN KEY(
verwijzende_sleutel) REFERENCES(
tabel.
primaire_sleutel)
- De volgorde waarin je tabellen in je SQL-bestand zet doet ertoe. De tabel
categories
moet je eerder maken dan de tabelproducts
, anders dan kent de computer de tabelcategories
nog niet als je ernaar wilt verwijzen in je constraint.
Tips
- Pas de
INSERT INTO
-opdracht die deproducts
-tabel vult aan. - Voeg het veld
category_id
toe aanINSERT INTO products
en geef voor elk product het nummer van de soort op.
4.3Uitleg: Query met 1:N-relatie maken¶
4.4Opdracht: Maak soort artikel zichtbaar in de webshop¶
Je hebt in de vorige opdracht informatie over de soort aan alle artikelen toegevoegd in de database. Maar deze informatie is nog niet te zien op de webshop. Dat komt omdat de API niks doet met de extra informatie uit de database. In deze opdracht ga je de API aanpassen, zodat de informatie over soort wordt doorgeven aan de client. De client is zo gemaakt dat hij deze extra informatie automatisch toont.
Tips
- De aanpassing moet je doen in de API, in het bestand
/app/main.py
- De query die je moet aanpassen is
SELECT * FROM products;
- Voeg aan de query een
JOIN
toe tussen de tabellenproducts
encategories
.
Tips
- xxxxxx