Průvodce pro začátečníky k psaní databázových schémat mySQL

Průvodce pro začátečníky k psaní databázových schémat mySQL

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, když při stavbě domu potřebujete zajistit správné položení základů, jinak se šance na stavbu kvalitního domu drasticky sníží.





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





zip soubor chráněný heslem Windows 10

VYTVOŘIT TABULKU Syntaxe

Chcete -li začít, otevřete svůj oblíbený textový editor. Vytvoření schématu databáze nevyžaduje nic jiného než prostý textový soubor. 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 users (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

Jak vidíte, vytvoří se databázová tabulka s názvem uživatelé který se skládá ze čtyř sloupců. To by měl být docela přímočarý příkaz SQL začínající VYTVOŘIT TABULKU , následovaný názvem databázových tabulek, pak 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í:



COL_NAME TYPE [OPTIONS]

Název sloupce, za ním typ sloupce a poté libovolné volitelné parametry. K volitelným parametrům se dostaneme později, ale zaměříme se na typ sloupce, níže jsou uvedeny nejčastěji používané typy sloupců:

Pro všechny účely jsou výše uvedené typy sloupců vše, co potřebujete k napsání dobře vytvořený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 další příklad VYTVOŘIT TABULKU tvrzení:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
status ENUM('active','inactive') NOT NULL DEFAULT 'active',
balance DECIMAL(8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Výše uvedené může vypadat trochu skličující, ale nebojte se, je to docela jednoduché. Zlomeno, zde je to, co se děje ve výše uvedeném prohlášení:





  • Vždy byste měli použít NOT NULL ve všech sloupcích, které vám pomohou s rychlostí a výkonem tabulky. To jednoduše určuje, že po vložení řádku nelze sloupec ponechat 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 sloupec je celé číslo, je také primárním klíčem tabulky, což znamená, že je jedinečný, a při každém vložení záznamu se zvýší o jeden. To by mělo být obecně použito ve všech tabulkách, které vytvoříte, abyste mohli snadno odkazovat na libovolný řádek v tabulce.
  • The postavení sloupec je ENUM a musí mít buď hodnotu „aktivní“ nebo „neaktivní“. Pokud není zadána žádná hodnota, nový řádek začne stavem „aktivní“.
  • The Zůstatek sloupec začíná na 0 pro každý nový řádek a je částkou, která je formátována dvěma dvěma desetinnými čárkami.
  • The datum narození sloupec je jednoduše DATUM, ale také umožňuje hodnotu null, protože datum narození nemusí být při vytvoření známé.
  • Poslední, vytvořil_at sloupec je TIMESTAMP a výchozí je aktuální čas, kdy byl řádek vložen.

Výše uvedené je příkladem pěkně strukturované databázové tabulky a mělo by být použito 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í podporou pro omezení cizího klíče a kaskádování. To je, když propojíte dvě tabulky dohromady pomocí sloupce, čímž vytvoříte nadřazený podřízený vztah, takže když je nadřazený řádek odstraněn, automaticky se odstraní i potřebné podřízené řádky.

Zde je příklad:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB;
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
amount DECIMAL(8,2) NOT NULL,
product_name VARCHAR(200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) engine=InnoDB;

Jako poslední řádek si všimnete klauzule FOREIGN KEY. Tento řádek jednoduše uvádí, že tato tabulka obsahuje podřízené řádky, které jsou propojeny znakem uživatelské ID sloupec do jejich nadřazeného řádku, což je id sloupec souboru uživatelé stůl. To znamená, že kdykoli je řádek odstraněn z uživatelé tabulka, mySQL automaticky odstraní všechny odpovídající řádky z objednávky tabulka, která pomáhá zajistit strukturální integritu ve vaší databázi.

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

aby Windows 8 vypadal jako Windows 10

Design s důvěrou

Nyní jste na dobré cestě k architektuře solidních, dobře strukturovaných databázových schémat mySQL. Pomocí výše uvedených znalostí můžete nyní 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 ho použít s těmito základní příkazy SQL .

Podíl Podíl tweet E-mailem Jak dotazovat více databázových tabulek najednou pomocí spojení SQL

Zjistěte, jak pomocí spojení SQL zjednodušit dotazy, ušetřit čas a cítit se jako zkušený uživatel SQL.

Číst dále
Související témata O autorovi Matt Dizak(18 článků zveřejněno) Více od Matta Dizaka

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

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru