Pri vývoji softvérového projektu je jedným z najdôležitejších, základných a vnútorných aspektov správne štruktúrovaná databázová schéma. Je to ekvivalent toho, že pri stavbe domu musíte zabezpečiť správne položenie základov, inak sa drasticky znížia šance na výstavbu kvalitného domu.
Prekvapivo jednoduchšie, ako by si človek myslel, poďme sa naučiť rôzne aspekty, ktoré sa používajú pri písaní dobre zostavenej databázovej schémy.
CREATE TABLE Syntax
Ak chcete začať, otvorte svoj obľúbený textový editor. Vytvorenie schémy databázy nevyžaduje nič viac ako obyčajný textový súbor. Databáza pozostáva z viacerých tabuliek, z ktorých každá sa skladá zo stĺpcov, a na vytvorenie jednej tabuľky sa používa syntax CREATE TABLE. Tu je základný príklad:
Používatelia CREATE TABLE (
id INT NIE JE NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR (100) NOT NULL,
e-mail VARCHAR (100) NIE JE NULL
);
Ako vidíte, vytvorí sa databázová tabuľka s názvom používateľov ktorý sa skladá zo štyroch stĺpcov. Mal by to byť pomerne priamy príkaz SQL, ktorý začína na
VYTVORIŤ TABUĽKU, za ktorým nasleduje názov databázových tabuliek, potom v zátvorke stĺpce tabuľky oddelené čiarkou.Používajte správne typy stĺpcov
Ako je uvedené vyššie, stĺpce, z ktorých bude tabuľka pozostávať, sú oddelené čiarkami. Každá definícia stĺpca sa skladá z troch rovnakých častí:
TYP COL_NAME [MOŽNOSTI]
Názov stĺpca, za ktorým nasleduje typ stĺpca, potom všetky voliteľné parametre. K voliteľným parametrom sa dostaneme neskôr, ale sústredením sa na typ stĺpca nižšie uvádzame zoznam najbežnejšie používaných typov stĺpcov:
Pre všetky účely sú vyššie uvedené typy stĺpcov všetko, čo potrebujete na napísanie dobre zostavených databázových schém MySQL.
Definujte možnosti stĺpca
Pri definovaní stĺpcov existujú aj rôzne možnosti, ktoré môžete určiť. Nižšie je uvedený ďalší príklad súboru VYTVORIŤ TABUĽKU vyhlásenie:
Používatelia CREATE TABLE (
id INT NIE JE NULL PRIMÁRNY KLÍČ AUTO_INCREMENT,
používateľské meno VARCHAR (100) NIE JE NULL JEDINEČNÉ,
status ENUM ('active', 'inactive') NOT NULL DEFAULT 'active',
zostatok DECIMÁLNY (8,2) NIE JE VÝCHODISKO 0,
dátum_ narodenia, DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
Vyššie uvedené môže pôsobiť trochu odstrašujúco, ale nie, je to celkom jednoduché. Ďalej je uvedené, čo sa deje vo vyššie uvedenom výroku:
- Vždy by ste mali používať NOT NULL na všetkých možných stĺpcoch, aby ste pomohli s rýchlosťou a výkonnosťou tabuľky. Toto jednoducho určuje, že stĺpec nemôže zostať prázdny / prázdny, keď je vložený riadok.
- Vždy sa snažte zachovať čo najmenšiu veľkosť stĺpca, pretože to pomáha zvyšovať rýchlosť a výkon.
- The id stĺpec je celé číslo, je tiež primárnym kľúčom tabuľky, čo znamená, že je jedinečný, a pri každom vložení záznamu sa zvýši o jeden. Toto by sa malo všeobecne použiť vo všetkých tabuľkách, ktoré vytvoríte, aby ste mohli ľahko odkazovať na jednotlivé riadky v tabuľke.
- The postavenie stĺpec je ENUM a musí mať hodnotu „aktívny“ alebo „neaktívny“. Ak nie je zadaná žiadna hodnota, nový riadok bude začínať stavom „aktívny“.
- The rovnováha stĺpec začína na 0 pre každý nový riadok a je to suma, ktorá je naformátovaná na dve dve desatinné čiarky.
- The dátum narodenia stĺpec je jednoducho DÁTUM, ale umožňuje aj nulovú hodnotu, pretože dátum narodenia nemusí byť pri vytvorení známy.
- Posledný created_at stĺpec je TIMESTAMP a má predvolený aktuálny čas, keď bol riadok vložený.
Vyššie uvedené je príklad pekne štruktúrovanej databázovej tabuľky a malo by sa používať ako príklad do budúcnosti.
Jednou z najväčších výhod používania relačných databáz ako napr mySQL je jeho vynikajúca podpora pre obmedzenia cudzieho kľúča a kaskádové riadenie. To je vtedy, keď navzájom prepojíte dve tabuľky stĺpcom, čím sa vytvorí vzťah nadradeného dieťaťa. Keď je nadradený riadok odstránený, automaticky sa odstránia aj potrebné podradené riadky.
Tu je príklad:
Používatelia CREATE TABLE (
id INT NIE JE NULL PRIMÁRNY KLÍČ AUTO_INCREMENT,
používateľské meno VARCHAR (100) NIE JE NULL JEDINEČNÉ,
full_name VARCHAR (100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) motor = InnoDB;
VYTVORIŤ TABUĽKOVÉ objednávky (
id INT NIE JE NULL PRIMÁRNY KLÍČ AUTO_INCREMENT,
ID používateľa INT NIE NULL,
suma DECIMÁLNA (8,2) NIE JE NULL,
nazov produktu VARCHAR (200) NIE NULL,
ZAHRANIČNÝ KLÍČ (userid) REFERENCIE používatelia (id) NA VYMAZANIE KASKÁDY
) motor = InnoDB;
Klauzulu ZAHRANIČNÝ KLÍČ si všimnete ako posledný riadok. Tento riadok jednoducho uvádza, že táto tabuľka obsahuje podradené riadky, ktoré sú prepojené znakom ID používateľa do ich nadradeného riadku, ktorým je id stĺpec používateľov stôl. Čo to znamená, vždy, keď je riadok odstránený z priečinka používateľov tabuľka, mySQL automaticky vymaže všetky príslušné riadky z objednávky tabuľka, ktorá pomáha zabezpečiť štrukturálnu integritu vo vašej databáze.
Všimnite si tiež motor = InnoDB na konci vyššie uvedeného vyhlásenia. Aj keď je teraz InnoDB predvoleným typom tabuľky MySQL, nebol to vždy, preto by sa to malo pridať, aby ste zostali na bezpečnej strane, pretože kaskádové fungovanie funguje iba s tabuľkami InnoDB.
Dizajn s dôverou
Teraz ste na dobrej ceste k architektúre pevných a dobre štruktúrovaných databázových schém MySQL. Pomocou vyššie uvedených poznatkov môžete teraz písať dobre organizované schémy, ktoré poskytujú výkon aj štrukturálnu integritu.
Po vytvorení schémy sa uistite, ako ju s týmito schémami používať základné príkazy SQL.
Naučte sa, ako používať spojenia SQL na zefektívnenie dotazov, úsporu času a navodenie toho, že sa budete cítiť ako skúsený používateľ SQL.
- Nešpecifikované
Prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!
Ešte jeden krok…!
V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.