Den är nästan samma som Banken, men istället för att lagra datan i en JSON-fil så lagras det nu i en MySQL
ER-Diagram
Databas-modell
Svårigheter & övrigt
För att gå från JSON till en mySQL, jag behövde ta bort alla funktioner som tidigare läste fil från JSON, till exempel:
define('USERS_JSON_PATH', 'users.json');
define('TRANSACTIONS_JSON_PATH', 'transactions.json');
function load_users(): array {
return js_read_array(USERS_JSON_PATH);
}
function load_transactions(): array {
return js_read_array(TRANSACTIONS_JSON_PATH);
}
Och ersätt den till den här PHP-koden som har mySQL med sig
$Qstmts = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$Qstmt->execute([$username]);
$user = $Qstmts->fetch();
$Qstmts = $pdo->prepare("SELECT * FROM transactions WHERE user_id = ?");
$Qstmts->execute([$user_id]);
$transactions = $Qstmts->fetchAll();
Det svåraste var att skriva om hela flödet så att allt fungerade tillsammans med databasen. Det är en stor skillnad mellan att börja ett projekt direkt med en databas och att konvertera en som redan finns och använder JSON eller .txt. Därför behövde jag tänka om hur datan skulle hämtas, uppdateras och kopplas till databasen. Jag löste det genom att arbeta steg för steg: först ER-diagrammet och databasmodellen, sedan SQL-koden, och till sist PHP-koden. På det sättet hade jag en färdig databas innan jag började koda och uppdatera logiken. Och under arbetet jag lärde mig mycket, till exempel om hur man använder prepared statements och PDO på ett säkert och strukturerat sätt.
Länk till m06-db


Leave a Reply