Načrtovanje in razvoj spletnih aplikacij

Kreiranje tabel podatkovne zbirke

Ko imamo podatkovno zbirko že pripravljeno, v njej ustvarimo tabele, v katere bomo shranjevali podatke. Tabele ustvarimo s SQL ukazom CREATE TABLE.

Kreiranje tabel v podatkovni zbirki

Pri ustvarjanju tabele določimo ime tabele in njena polja. Za vsako polje moramo navesti ime stolpca, podatkovni tip ter po potrebi dodatne omejitve, na primer NOT NULL, AUTO_INCREMENT ali PRIMARY KEY.

Osnovna sintaksa za kreiranje tabele je:

CREATE TABLE imeTabele (
    stolpec1 podatkovniTip,
    stolpec2 podatkovniTip,
    ...
);

Če želimo preprečiti napako, kadar tabela že obstaja, uporabimo:

CREATE TABLE IF NOT EXISTS imeTabele (
    stolpec1 podatkovniTip,
    stolpec2 podatkovniTip,
    ...
);

Pri ustvarjanju tabele moramo biti povezani na točno določeno podatkovno zbirko, saj tabela vedno nastane znotraj izbrane baze.

Osnovni primer z mysqli

Spodnji zgled ustvari tabelo knjige v izbrani podatkovni zbirki, če ta še ne obstaja.

<?php
define('DB_SERVER', 'localhost');
define('DB_USER', 'uporabnik');
define('DB_PASS', 'skritoGeslo');
define('DB_NAME', 'knjiznica');

// Povezava do podatkovne zbirke
$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

// Preverjanje povezave
if (!$connection) {
    die(
        'Povezava s podatkovno zbirko ni vzpostavljena: ' .
        mysqli_connect_error() .
        ' (' . mysqli_connect_errno() . ')'
    );
}

// SQL ukaz za kreiranje tabele
$sql = "CREATE TABLE IF NOT EXISTS knjige (
    ID_knjige INT NOT NULL AUTO_INCREMENT,
    Priimek_avtorja VARCHAR(50) NOT NULL,
    Ime_avtorja VARCHAR(50) NOT NULL,
    Naslov VARCHAR(150) NOT NULL,
    Strani INT NOT NULL,
    Cena DECIMAL(10,2) NOT NULL,
    Leto YEAR NOT NULL,
    PRIMARY KEY (ID_knjige)
)";

// Izvedba ukaza
if (mysqli_query($connection, $sql)) {
    echo 'Tabela knjige je pripravljena.';
} else {
    echo 'Napaka pri kreiranju tabele: ' . mysqli_error($connection);
}

// Zapiranje povezave
mysqli_close($connection);
?>

Osnovni primer s PDO

Enako nalogo lahko izvedemo tudi z vmesnikom PDO. Tudi tu uporabimo ukaz CREATE TABLE IF NOT EXISTS.

<?php
$streznik = 'localhost';
$baza = 'knjiznica';
$uporabnik = 'uporabnik';
$geslo = 'skritoGeslo';

try {
    // Povezava do podatkovne zbirke
    $pdo = new PDO("mysql:host=$streznik;dbname=$baza;charset=utf8mb4", $uporabnik, $geslo);

    // Vklop izjem pri napakah
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // SQL ukaz za kreiranje tabele
    $sql = "CREATE TABLE IF NOT EXISTS knjige (
        ID_knjige INT NOT NULL AUTO_INCREMENT,
        Priimek_avtorja VARCHAR(50) NOT NULL,
        Ime_avtorja VARCHAR(50) NOT NULL,
        Naslov VARCHAR(150) NOT NULL,
        Strani INT NOT NULL,
        Cena DECIMAL(10,2) NOT NULL,
        Leto YEAR NOT NULL,
        PRIMARY KEY (ID_knjige)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci";

    // Izvedba SQL ukaza
    $pdo->exec($sql);

    echo 'Tabela knjige je pripravljena.';
}
catch (PDOException $e) {
    echo 'Napaka pri kreiranju tabele: ' . $e->getMessage();
}
?>

Pomembnosti pri definiranju tabele

  • ime tabele naj bo jasno in smiselno,
  • za vsak stolpec določimo ustrezen podatkovni tip,
  • ključni stolpec pogosto določimo kot PRIMARY KEY,
  • za samodejno številčenje pogosto uporabimo AUTO_INCREMENT,
  • za sodobne aplikacije je priporočljiva uporaba kodiranja utf8mb4.

📘Aplikacija Knjige

V priloženi aplikaciji Knjige je v datoteki 03_kreiranjeTB.php prikazano kreiranje tabele knjige. Uporablja se obstoječa PDO povezava iz konfiguracije aplikacije, tabela pa se ustvari le, če še ne obstaja. :contentReference[oaicite:1]{index=1}

Stran nato ločeno prikaže še uspešnost povezave s podatkovno zbirko ter stanje tabele, kar je dober zgled pregledne namestitvene strani. :contentReference[oaicite:2]{index=2}

Primer: aplikacija Knjige – 03_kreiranjeTB.php

Navodila za izdelavo aplikacije Knjige

  1. Najprej ustvarimo ali izberemo podatkovno zbirko.
  2. Nato vzpostavimo povezavo na izbrano bazo.
  3. Pripravimo SQL ukaz CREATE TABLE IF NOT EXISTS.
  4. Določimo stolpce, podatkovne tipe in primarni ključ.
  5. Ukaz izvedemo in preverimo, ali je tabela uspešno pripravljena.
  6. V aplikaciji Knjige je to izvedeno z uporabo obstoječe PDO povezave iz konfiguracije. :contentReference[oaicite:3]{index=3}

Pri učenju je smiselno poznati oba pristopa:

  • mysqli kot klasičen pristop za MySQL oziroma MariaDB,
  • PDO kot bolj prenosljiv pristop,
  • aplikacijski pristop, kjer je priprava tabele del ločenega namestitvenega koraka.