⊗ppPmAuRgtD 434 of 447 menu

Andmebaasi normaliseerimine

Praegu hoime oma kasutajate staatuseid samas tabelis, kus ka kasutajaid ise. See on aga vale - meil saab olema mitte-normaliseeritud tabel, kuna sõnad 'user' ja 'admin' korduvad palju kordi.

On vaja teha normaliseerimine - viime meie staatused eraldi tabelisse statuses:

id name
1 user
2 admin

Ja tabelis users teeme veeru status_id. Nüüd registreerumisel me veerusse status_id kirjutame id staatuse tabelist statuses:

<?php $query = "INSERT INTO users SET login='$login', password='$password', status_id='1'"; ?>

Kõige keerulisemad muutused toimuvad autoriseerimisel: kasutaja staatuse saamiseks on vaja teha LEFT JOIN:

<?php $login = $_POST['login']; // Saame kasutaja login-i järgi ja ühendame staatuse: $query = "SELECT users.*, statuses.name as status FROM users LEFT JOIN statuses ON users.status_id=statuses.id WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $hash = $user['password']; if (password_verify($_POST['password'], $hash)) { $_SESSION['auth'] = true; $_SESSION['status'] = $user['status']; // staatus } else { } } else { } ?>

Teisendage oma autoriseerimine ja registreerimine vastavalt teoorias kirjeldatule.

Tehke muudatused admin-töösse (kasutajate staatuste kuvamine, staatuste muutmine jne).

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu