Files
J1B2-Game-controller/docs/documentatie/database.md

1.8 KiB

Database

We hebben een database gemaakt. De tabel heet scores en heeft de volgende kolommen: Naam, Scores.

Alt text

Waarom hebben we voor deze structuur gekozen?

We hebben gekozen om 2 tabellen te maken en een koppel tabel zodat we alle gebruikers met hun code apart kunnen houden en de achievementsoorten apart kunnen houden. We hebben users en scores in dezelfde tabel gezet omdat je per sessie maar 1 score kan hebben en dus niet meerdere scores per gebruiker. Aan die sessie kunnen ook achievements worden gekoppelt en die worden dan in de koppel tabel gezet. We hebben een many to many relatie tussen sessie en achievements omdat een sessie meerdere achievements kan hebben en een achievement meerdere sessies kan hebben.

Om iets in de database te zetten moet je de volgende code gebruiken:

INSERT INTO Sessie (Naam, Score) 
VALUES ("henk", 413);

We hadden gekozen voor een tabel scores en naam en de andere tabel met achievement soorten en dan daartussen een relatie zodat we die achievements kunnen koppelen aan een sessie.

Bij het aanmaken van een sessie hoeven we alleen naam en score in te voeren en dan word de rest automatisch ingevuld.

Daarna moeten we in php de UserID opvragen zodat we de achievements kunnen koppelen aan de sessie.

    $last_id = $conn->insert_id;

Op deze manier krijg je de laatst toegevoegde id en kan je de achievements koppelen aan de sessie.

$sqlAchievement1 = "INSERT INTO Sessie_has_Achievements (Sessie_UserID, Achievements_AchievementID) VALUES ('$last_id', 1)";
    $conn->query($sqlAchievement1);

Op deze manier word er elke keer een nieuwe rij toegevoegd aan de tabel Sessie_has_Achievements en dus een achievement gekoppelt aan de sessie.

Bron: https://www.w3schools.com/sql/sql_insert.asp