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
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.
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.
- Meg nem határozott
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.