Szoftver projekt fejlesztésekor az egyik legfontosabb, megalapozó és belső szempont a megfelelően felépített adatbázis-séma. Ez megegyezik azzal, hogy házat építve meg kell győződnie arról, hogy az alap megfelelően meg van-e rakva, különben a minőségi ház építésének esélyei drasztikusan csökkennek.

Meglepően könnyebb, mint gondolnánk, tanuljuk meg a jól felépített adatbázis-séma megírásához használt különféle aspektusokat.

Táblázat létrehozása Szintaxis

Először nyissa meg kedvencét szöveg szerkesztő. Az adatbázis-séma létrehozásához nem kell más, mint egy egyszerű szöveges fájl. Az adatbázis több táblából áll, mindegyik oszlopból áll, és a CREATE TABLE szintaxist egyetlen tábla létrehozására használják. Itt egy alapvető példa:


TABLE felhasználók létrehozása (
id INT NULL,
is_active TINY INT NULL,
full_name VAR CHAR (100) NEM NULL,
email VARCHAR (100) NEM NULL
);

Amint láthatja, ez létrehoz egy adatbázistáblát felhasználók amely négy oszlopból áll. Ennek meglehetősen egyenes SQL-utasításnak kell lennie, kezdve

instagram viewer
TÁBLÁZAT LÉTREHOZÁSA, amelyet az adatbázis-táblák neve követ, majd a zárójelben vesszővel elválasztva a táblázat oszlopait.

Használja a megfelelő oszloptípusokat

Amint a fentiekből látható, az oszlopok, amelyekből a táblázat áll, vesszőkkel vannak elválasztva. Minden oszlopdefiníció három azonos részből áll:

COL_NAME TÍPUS [OPCIÓK]

Az oszlop neve, az oszlop típusa, majd az opcionális paraméterek. Később belemerülünk az opcionális paraméterekbe, de az oszloptípusra koncentrálva az alábbiakban felsoroljuk a leggyakrabban használt oszloptípusokat:

Minden szempontból a fenti oszloptípusok szükségesek a jól felépített mySQL adatbázis-sémák megírásához.

Adja meg az oszlopbeállításokat

Az oszlopok definiálásakor különféle lehetőségeket is megadhat. Az alábbiakban egy másik példa a TÁBLÁZAT LÉTREHOZÁSA nyilatkozat:


TABLE felhasználók létrehozása (
id INT NEM NULL PRIMARY KEY AUTO_INCREMENT,
VARCHAR (100) felhasználónév NEM EGYEDI,
status ENUM ('aktív', 'inaktív') NEM NULL DEFAULT 'aktív',
egyenleg DECIMAL (8,2) NEM NULL DEFAULT 0,
születési dátum DATETIME,
created_at TIMESTAMP NEM NULL DEFAULT CURRENT_TIMESTAMP
);

A fentiek kissé ijesztőnek tűnhetnek, de nem izgulnak, ez nagyon egyszerű. Bontott állapotban a következő állítás történik:

  • A táblázat sebességének és teljesítményének elősegítéséhez mindig a NULL értéket kell használnia minden oszlopban. Ez egyszerűen megadja, hogy az oszlop nem maradhat üres / null, amikor egy sort beszúr.
  • Mindig próbáljon minél reálisabban tartani az oszlop méretét, mivel ez javítja a sebességet és a teljesítményt.
  • A id oszlop egész szám, a táblázat elsődleges kulcsa is, ami azt jelenti, hogy egyedi, és minden egyes bejegyzés beszúrásakor eggyel növekszik. Ezt általában minden létrehozott táblánál fel kell használni, hogy könnyedén hivatkozhasson a táblázat bármelyik sorára.
  • A állapot oszlop egy ENUM, és vagy "aktív" vagy "inaktív" értékkel kell rendelkeznie. Ha nincs megadva érték, akkor egy új sor kezdődik "aktív" státusszal.
  • A egyensúly oszlop minden új sornál 0-nál kezdődik, és egy összeg, amelyet két két tizedesjegy formázott.
  • A születési dátum oszlop egyszerűen DÁTUM, de null értéket is lehetővé tesz, mivel a születés dátuma a létrehozáskor nem biztos, hogy ismert.
  • Végül a létrehozott_at oszlop TIMESTAMP és alapértelmezés szerint a sor beszúrásának aktuális ideje.

A fenti egy példa egy szépen felépített adatbázis-táblára, amelyet a továbbiakban példaként kell használni.

Az egyik legnagyobb előnye a relációs adatbázisok használatának, mint pl mySQL kiváló támogatást nyújt a külföldi kulcsfontosságú korlátokhoz és a lépcsőzetes működéshez. Ekkor két táblázatot összekapcsol egy oszloppal, így létrejön egy szülő-gyermek kapcsolat, így a szülő sor törlésekor a szükséges gyermek sorok is automatikusan törlődnek.

Íme egy példa:


TABLE felhasználók létrehozása (
id INT NEM NULL PRIMARY KEY AUTO_INCREMENT,
VARCHAR (100) felhasználónév NEM EGYEDI,
teljes_név VARCHAR (100) NEM NULL,
created_at TIMESTAMP NEM NULL DEFAULT CURRENT_TIMESTAMP
) motor = InnoDB;
TABLE megrendelések létrehozása (
id INT NEM NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NULL,
összeg DECIMAL (8,2) NEM NULL,
product_name VARCHAR (200) NEM NULL,
KÜLFÖLDI KULCS (userid) REFERENCIÁK a felhasználókra (id) A KASZÁD TÖRLÉSÉRE
) motor = InnoDB;

Utolsó sorként a FOREIGN KEY záradékot fogja észrevenni. Ez a sor egyszerűen kijelenti, hogy a táblázat olyan gyermek sorokat tartalmaz, amelyeket a Felhasználói azonosító oszlopot a szülő sorukig, ami a id oszlop felhasználók asztal. Ez azt jelenti, hogy bármikor törölnek egy sort a felhasználók táblázat, a mySQL automatikusan törli az összes megfelelő sort a megrendelések táblázat, amely biztosítja az adatbázis strukturális integritását.

Vegye figyelembe a motor = InnoDB a fenti állítás végén. Bár az InnoDB ma már az alapértelmezett mySQL táblatípus, nem mindig volt ez, ezért ezt csak azért kell hozzáadni, hogy biztonságban lehessünk, mivel a lépcsőzetes tervezés csak az InnoDB táblákkal működik.

Tervezés bizalommal

Most jó úton halad szilárd, jól felépített mySQL adatbázis-sémák felépítéséig. A fenti ismeretek felhasználásával jól szervezett sémákat írhat, amelyek mind teljesítményt, mind strukturális integritást biztosítanak.

Ha a sémája a helyén van, győződjön meg arról, hogy tudja használni ezeket alapvető SQL parancsok.

Email
Hogyan lehet egyszerre lekérdezni több adatbázis-táblázatot az SQL-csatlakozásokkal

Tanulja meg, hogyan használhatja az SQL csatlakozásokat a lekérdezések egyszerűsítésére, időmegtakarításra és arra, hogy SQL erőfelhasználóként érezze magát.

Kapcsolódó témák
  • Meg nem határozott
A szerzőről
Matt Dizak (18 cikk megjelent)Tovább Matt Dizaktól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.