Při vývoji softwarového projektu je jedním z nejdůležitějších, základních a vnitřních aspektů správně strukturované databázové schéma. Je to ekvivalent toho, že při stavbě domu musíte zajistit správné položení základů, jinak se drasticky sníží šance na stavbu kvalitního domu.

Překvapivě jednodušší, než by si člověk myslel, pojďme se naučit různé aspekty použité k napsání dobře navrženého schématu databáze.

CREATE TABLE Syntax

Nejprve otevřete svůj oblíbený textový editor. Vytvoření schématu databáze nevyžaduje nic jiného než soubor prostého textu. Databáze se skládá z více tabulek, z nichž každá se skládá ze sloupců, a k vytvoření jedné tabulky se používá syntaxe CREATE TABLE. Zde je základní příklad:


CREATE TABLE uživatelé (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR (100) NOT NULL,
e-mail VARCHAR (100) NENÍ NULL
);

Jak vidíte, vytvoří se databázová tabulka s názvem uživatelů který se skládá ze čtyř sloupců. Mělo by se jednat o poměrně přímočarý příkaz SQL počínaje

instagram viewer
VYTVOŘIT TABULKU, následovaný názvem databázových tabulek, poté v závorkách sloupce tabulky oddělené čárkou.

Použijte správné typy sloupců

Jak je uvedeno výše, sloupce, ze kterých bude tabulka sestávat, jsou odděleny čárkami. Každá definice sloupce se skládá ze tří stejných částí:

TYP COL_NAME [MOŽNOSTI]

Název sloupce, za nímž následuje typ sloupce a poté všechny volitelné parametry. K volitelným parametrům se dostaneme později, ale soustředěním se na typ sloupce níže uvádíme nejčastěji používané typy sloupců, které jsou k dispozici:

Pro všechny záměry jsou výše uvedené typy sloupců vše, co potřebujete k napsání dobře sestavených schémat databáze MySQL.

Definujte možnosti sloupců

Při definování sloupců existují také různé možnosti, které můžete zadat. Níže je uveden další příklad VYTVOŘIT TABULKU tvrzení:


CREATE TABLE uživatelé (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
uživatelské jméno VARCHAR (100) NOT NULL UNIQUE,
status ENUM ('active', 'inactive') NOT NULL DEFAULT 'active',
zůstatek DECIMÁLNÍ (8,2) NENÍ NULOVÁ VÝCHOZÍ 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Výše uvedené může vypadat trochu skličující, ale nedělejte si starosti, je to docela jednoduché. Rozepsané, tady je to, co se děje ve výše uvedeném prohlášení:

  • Vždy byste měli používat NOT NULL ve všech možných sloupcích, abyste pomohli s rychlostí a výkonem tabulky. Toto jednoduše určuje, že sloupec nemůže být při vložení řádku prázdný / null.
  • Vždy se snažte, aby velikost sloupce byla co nejmenší, protože to pomáhá zlepšit rychlost a výkon.
  • The id column is an integer, is also the primary key of the table means it's unique, and will increment by one every time a record is entered. To by se obecně mělo používat na všech tabulkách, které vytvoříte, abyste mohli snadno odkazovat na jakýkoli jeden řádek v tabulce.
  • The postavení sloupec je ENUM a musí mít hodnotu „aktivní“ nebo „neaktivní“. Pokud není zadána žádná hodnota, začne nový řádek se stavem „aktivní“.
  • The Zůstatek sloupec začíná na 0 pro každý nový řádek a je to částka, která je naformátována na dvě dvě desetinná místa.
  • The datum narození sloupec je jednoduše DATUM, ale také umožňuje nulovou hodnotu, protože datum narození nemusí být při vytvoření známé.
  • Poslední created_at column is a TIMESTAMP and defaults to the current time when the row was entered.

Výše uvedený je příklad pěkně strukturované databázové tabulky a měl by být použit jako příklad do budoucna.

Jednou z největších výhod používání relačních databází, jako je mySQL je jeho vynikající podpora pro omezení cizích klíčů a kaskádování. To je, když propojíte dvě tabulky dohromady sloupcem a vytvoříte nadřazený podřízený vztah, takže když je nadřazený řádek odstraněn, budou automaticky odstraněny také potřebné podřízené řádky.

Zde je příklad:


CREATE TABLE uživatelé (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
uživatelské jméno VARCHAR (100) NOT NULL UNIQUE,
full_name VARCHAR (100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) motor = InnoDB;
VYTVOŘIT TABULKU objednávky (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ID uživatele INT NENÍ NULL,
částka DECIMÁLNÍ (8,2) NENÍ NULL,
název_produktu VARCHAR (200) NOT NULL,
ZAHRANIČNÍ KLÍČ (id uživatele) REFERENCE uživatelé (id) NA SMAZÁNÍ KASKÁDY
) motor = InnoDB;

Klauzuli FOREIGN KEY si všimnete jako poslední řádek. Tento řádek jednoduše uvádí, že tato tabulka obsahuje podřízené řádky, na které odkazuje uživatelské ID sloupec na jejich nadřazený řádek, kterým je id sloupec uživatelů stůl. Co to znamená, kdykoli je řádek odstraněn z uživatelů tabulka, mySQL automaticky smaže všechny odpovídající řádky z objednávky tabulka pomáhá zajistit strukturální integritu ve vaší databázi.

Všimněte si také engine = InnoDB na konci výše uvedeného prohlášení. I když je nyní InnoDB výchozím typem tabulky MySQL, nebylo to vždy, takže toto by mělo být přidáno jen proto, aby zůstalo na bezpečné straně, protože kaskádování funguje pouze s tabulkami InnoDB.

Design s důvěrou

Nyní jste na dobré cestě k architektuře pevných a dobře strukturovaných databázových schémat MySQL. Pomocí výše uvedených znalostí nyní můžete psát dobře organizovaná schémata, která poskytují výkon i strukturální integritu.

Když je vaše schéma na místě, ujistěte se, že víte, jak jej s nimi použít základní příkazy SQL.

E-mailem
Jak dotazovat více databázových tabulek najednou pomocí připojení SQL

Naučte se, jak používat spojení SQL k zefektivnění dotazů, úspoře času a budete se cítit jako mocný uživatel SQL.

Související témata
  • Nespecifikováno
O autorovi
Matt Dizak (Publikováno 18 článků)Více od Matta Dizaka

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.