Pri razvoju softverskog projekta jedan od najvažnijih, temeljnih i suštinskih aspekata je pravilno strukturirana shema baze podataka. To je ekvivalent prilikom gradnje kuće kako biste osigurali pravilno postavljanje temelja, inače su šanse za izgradnju kvalitetne kuće drastično smanjene.

Iznenađujuće lakše nego što bi netko pomislio, naučimo razne aspekte koji se koriste za pisanje dobro arhitekturne sheme baze podataka.

STVORI TABELU Sintaksa

Za početak otvorite svoj omiljeni uređivač teksta. Stvaranje sheme baze podataka ne zahtijeva ništa više od obične tekstualne datoteke. Baza podataka sastoji se od više tablica, od kojih se svaka sastoji od stupaca, a sintaksa CREATE TABLE koristi se za stvaranje jedne tablice. Evo osnovnog primjera:


IZRADI TABELU korisnika (
id INT NIJE NULL,
is_active TINY INT NOT NULL,
puno_ime VAR CHAR (100) NIJE NULL,
e-mail VARCHAR (100) NIJE NULL
);

Kao što vidite, stvorit će se tablica baze podataka s imenom korisnika koja se sastoji od četiri stupca. Ovo bi trebao biti prilično izravan SQL izraz koji počinje s

IZRADI TABELU, nakon čega slijedi ime tablica baze podataka, a zatim u zagradi stupci tablice odvojeni zarezom.

Koristite ispravne vrste stupaca

Kao što je gore prikazano, stupci od kojih će se tablica sastojati odvojeni su zarezima. Svaka definicija stupca sastoji se od tri ista dijela:

TIP COL_NAME [OPCIJE]

Ime stupca, slijedi vrsta stupca, zatim bilo koji neobavezni parametar. Neobavezne parametre ući ćemo kasnije, ali koncentrirajući se na tip stupca, u nastavku su navedeni najčešće korišteni tipovi stupaca:

Za sve namjere, gornje vrste stupaca sve su što trebate za pisanje dobro izgrađenih shema baze podataka MySQL.

Definirajte opcije stupaca

Pri definiranju stupaca postoje i razne opcije koje možete odrediti. Ispod je još jedan primjer IZRADI TABELU izjava:


IZRADI TABELU korisnika (
id INT NOT NULL PRIMARNI KLJUČ AUTO_INCREMENT,
korisničko ime VARCHAR (100) NIJE NULL UNIQUE,
status ENUM ('aktivan', 'neaktivan') NOT NULL DEFAULT 'aktivan',
vaga DECIMALNA (8,2) NIJE NULTA ZADATAK 0,
datum_rođenja DATETIME,
created_at VRIJEME VRIJEME NIJE NULTA ZADATAK CURRENT_TIMESTAMP
);

Gore navedeno može izgledati pomalo zastrašujuće, ali ne brinite se, sasvim je jednostavno. Slomljeno, evo što se događa u gornjoj izjavi:

  • Uvijek trebate koristiti NOT NULL na svim mogućim stupcima kako biste pomogli u brzini i performansama tablice. Ovo jednostavno određuje da stupac ne može ostati prazan / nulan kada se umetne redak.
  • Uvijek nastojte da veličina stupaca bude što je moguće realnija, jer pomaže u poboljšanju brzine i performansi.
  • The iskaznica stupac je cijeli broj, ujedno je i primarni ključ tablice, što znači da je jedinstven, i povećavat će se za jedan puta svaki put kad se zapis unese. To bi se općenito trebalo koristiti na svim tablicama koje kreirate, tako da možete lako uputiti bilo koji pojedinačni redak u tablici.
  • The status stupac je ENUM i mora imati vrijednost "aktivan" ili "neaktivan". Ako nije navedena vrijednost, započet će novi redak sa statusom "aktivan".
  • The ravnoteža stupac započinje s 0 za svaki novi redak i predstavlja iznos koji je oblikovan u dvije dvije decimale.
  • The Datum rođenja stupac je jednostavno DATUM, ali dopušta i null vrijednost jer datum rođenja možda neće biti poznat po stvaranju.
  • Posljednji, stvoreno_at stupac je TIMESTAMP i zadati je trenutno vrijeme kada je redak umetnut.

Gore navedeno je primjer lijepo strukturirane tablice baze podataka i trebao bi se koristiti kao primjer za dalje.

Jedna od najvećih prednosti korištenja relacijskih baza podataka kao što je mySQL je njegova izvrsna podrška za ograničenja stranog ključa i kaskadno. To je slučaj kada dvije tablice povežete stupcem, formirajući roditeljski odnos djeteta, pa kad se roditeljski redak izbriše, automatski se brišu i potrebni podređeni retci.

Evo primjera:


IZRADI TABELU korisnika (
id INT NOT NULL PRIMARNI KLJUČ AUTO_INCREMENT,
korisničko ime VARCHAR (100) NIJE NULL UNIQUE,
puno_ime VARCHAR (100) NIJE NULL,
created_at VRIJEME VRIJEME NIJE NULTA ZADATAK CURRENT_TIMESTAMP
) motor = InnoDB;
IZRADI NARUDŽBE (
id INT NOT NULL PRIMARNI KLJUČ AUTO_INCREMENT,
userid INT NIJE NULL,
iznos DECIMALAN (8,2) NE NULL,
product_name VARCHAR (200) NIJE NULL,
STRANI KLJUČ (userid) REFERENCE korisnika (id) NA BRISANJE KASKADE
) motor = InnoDB;

Kao zadnji redak primijetit ćete klauzulu FOREIGN KEY. Ovaj redak jednostavno navodi da ova tablica sadrži podređene retke koji su povezani s userid stupac u njihov roditeljski redak, a to je iskaznica stupac korisnika stol. Što to znači, svaki put kad se redak izbriše iz korisnika tablice, mySQL će automatski izbrisati sve odgovarajuće retke iz naredbe tablica koja osigurava strukturni integritet unutar vaše baze podataka.

Također imajte na umu motor = InnoDB na kraju gornje izjave. Iako je InnoDB sada zadana vrsta tablice mySQL, to nije bilo uvijek, pa bi to trebalo dodati samo da ostanemo sigurni, jer kaskadno funkcionira samo s InnoDB tablicama.

Dizajnirajte s povjerenjem

Sada ste na dobrom putu da kreirate čvrste, dobro strukturirane sheme baze podataka MySQL. Koristeći gornje znanje, sada možete napisati dobro organizirane sheme koje pružaju i izvedbu i strukturni integritet.

S postavljenom shemom, osigurajte da znate kako je koristiti s njima bitne SQL naredbe.

E-mail
Kako odjednom upitivati ​​više tablica baza podataka pomoću SQL pridruživanja

Naučite kako koristiti SQL pridruživanja za pojednostavljivanje upita, uštedu vremena i stvaranje osjećaja kao SQL napredni korisnik.

Povezane teme
  • Nespecificirano
O autoru
Matt Dizak (Objavljeno 18 članaka)Više od Matta Dizaka

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.