Idag kikade vi närmre på relationsdatabasen mySQL och vad som skiljer sådana relationsdatabaser åt från dokumentdatabaser (som t.ex. Firestore som vi kikat på tidigare).
Vi passade även på att förbättra våra EJS-skills genom att dela upp vår EJS-kod i ”partials” som vi sedan inkluderade, så att vi kan få ett enhetligt utseende.
Se branchen för lesson-4 på GitHub för den koden vi skrev.
Databasen
Vi skapade databasen fika och i den tabellen cafees med följande struktur (för kolumnen id så valde vi även PRIMARY under ”Index” och kryssade i rutan ”A_I” (auto-increment):

Därefter fyllde vi den med lite olika caféer och kikade på de olika SQL-queries vi kan köra.
Hämta ut alla caféer från tabellen cafees
SELECT * FROM cafees
Hämta ut caféet med ID 2
SELECT * FROM cafees
Hämta ut alla caféer i Lund
SELECT * FROM cafees WHERE city = 'Lund'
Skapa ett nytt café
INSERT INTO cafees (name, address, city) VALUES ('Hemma hos Johan', 'Kaffevägen 1', 'Lund')
Uppdatera city för caféet med ID 4
UPDATE cafees SET city = 'Kaffestad' WHERE id = 4
Uppdatera address & city för caféet med ID 3
UPDATE cafees SET address = 'Te-gatan 42", city = 'Teby' WHERE id = 3
Ta bort caféet med ID 5
DELETE FROM cafees WHERE id = 5
Länkar
W3Schools SQL Tutorial
https://www.w3schools.com/sql/
EJS Template Engine
mysql npm-paket
https://www.npmjs.com/package/mysql
Workshop/självstudier
Ta hem den senaste versionen av vår 04-cafees från lesson-4 branchen.
Se om du kan få till det så att när man surfar in på /cafees/1 så hämtas caféet med id 1 och view:en cafees/show renderas (och så att /cafees/2 hämtar caféet med id 2 och view:en cafees/show renderas med det caféet osv).
Tips: i Express behöver du använda route-parametrar (se avsnittet ”Route Parameters” i Express-dokumentationen) och i databas-query:n behöver du använda WHERE.