Izstrādājot programmatūras projektu, viens no vissvarīgākajiem, pamatprincipiem un iekšējiem aspektiem ir pareizi strukturēta datu bāzes shēma. Tas ir līdzvērtīgs tam, ka, būvējot māju, jums ir nepieciešams nodrošināt pamatu pareizu ieklāšanu, pretējā gadījumā kvalitatīvas mājas celtniecības iespējas krasi samazinās.

Pārsteidzoši vieglāk, nekā varētu domāt, iemācīsimies dažādus aspektus, ko izmanto, lai rakstītu labi arhitektētu datu bāzes shēmu.

IZVEIDOT GALDA sintaksi

Lai sāktu, atveriet savu iecienītāko teksta redaktors. Datu bāzes shēmas izveidei nav nepieciešams vairāk kā vienkārša teksta fails. Datu bāze sastāv no vairākām tabulām, no kurām katra sastāv no kolonnām, un CREATE TABLE sintakse tiek izmantota vienas tabulas izveidošanai. Šeit ir pamatpiemērs:


IZVEIDOT GALDA lietotājus (
id INT NULL,
is_active TINY INT NULL,
full_name VAR CHAR (100) NAV NULL,
e-pasts VARCHAR (100) NAV NULL
);

Kā redzat, tas izveidos datu bāzes tabulu ar nosaukumu lietotājiem kas sastāv no četrām kolonnām. Tam vajadzētu būt diezgan tiešam SQL priekšrakstam, kas sākas ar

instagram viewer
IZVEIDOT GALDA, kam seko datu bāzes tabulu nosaukums, pēc tam iekavās tabulas kolonnas atdala ar komatu.

Izmantojiet pareizos kolonnu veidus

Kā parādīts iepriekš, kolonnas, no kurām sastāv tabula, atdala ar komatiem. Katru kolonnu definīciju veido trīs vienas un tās pašas daļas:

COL_NAME VEIDS [IESPĒJAS]

Kolonnas nosaukums, kam seko kolonnas tips, pēc tam visi izvēles parametri. Mēs vēlāk iekļausim izvēles parametrus, bet koncentrējoties uz kolonnu veidu, zemāk ir uzskaitīti visbiežāk pieejamie kolonnu veidi:

Visiem iepriekš minētajiem kolonnu veidiem ir viss, kas jums nepieciešams, lai rakstītu labi izveidotas mySQL datu bāzes shēmas.

Definējiet kolonnu opcijas

Definējot kolonnas, varat norādīt arī dažādas opcijas. Zemāk ir vēl viens IZVEIDOT GALDA paziņojums, apgalvojums:


IZVEIDOT GALDA lietotājus (
id INT NAV NULL PRIMARY KEY AUTO_INCREMENT,
lietotājvārds VARCHAR (100) NAV VIENKĀRŠS,
statuss ENUM ('aktīvs', 'neaktīvs') NAV NULL DEFAULT 'aktīvs',
atlikums DECIMAL (8,2) NOT NULL DEFAULT 0,
dzimšanas datums DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Iepriekš minētais var izskatīties nedaudz biedējošs, bet neuztraucieties, tas ir diezgan vienkārši. Sadalīts, lūk, kas notiek iepriekš minētajā paziņojumā:

  • Vienmēr visās kolonnās izmantojiet NOT NULL, lai palīdzētu palielināt tabulas ātrumu un veiktspēju. Tas vienkārši norāda, ka kolonnu nevar atstāt tukšu / nulli, kad tiek ievietota rinda.
  • Centieties vienmēr saglabāt kolonnu izmēru pēc iespējas mazāku, jo tas palīdz uzlabot ātrumu un veiktspēju.
  • The id kolonna ir vesels skaitlis, tā ir arī tabulas galvenā atslēga, kas nozīmē, ka tā ir unikāla, un tā palielināsies par vienu katru reizi, kad tiek ievietots ieraksts. Tas parasti jāizmanto visās izveidotajās tabulās, lai jūs varētu viegli atsaukties uz jebkuru atsevišķu tabulas rindu.
  • The statuss kolonna ir ENUM un tai jābūt vai nu vērtībai "aktīvs" vai "neaktīvs". Ja vērtība nav norādīta, sāksies jauna rinda ar statusu "aktīvs".
  • The līdzsvars kolonna sākas ar 0 katrai jaunai rindai un ir summa, kas formatēta ar diviem diviem cipariem aiz komata.
  • The dzimšanas datums kolonna ir vienkārši DATUMS, bet arī pieļauj nulles vērtību, jo dzimšanas datums, iespējams, nav zināms pēc izveides.
  • Pēdējais izveidots_at kolonna ir TIMESTAMP un pēc noklusējuma ir pašreizējais laiks, kad rinda tika ievietota.

Iepriekš minētais ir labi strukturētas datu bāzes tabulas piemērs, un tas būtu jāizmanto kā piemērs turpmāk.

Viena no lielākajām priekšrocībām, lietojot relāciju datubāzes, piemēram, mySQL ir lielisks atbalsts ārvalstu atslēgu ierobežojumiem un kaskādēm. Tas ir tad, kad saista divas tabulas kopā ar kolonnu, veidojot vecāku un bērnu attiecības, tādēļ, dzēšot vecāku rindu, nepieciešamās pakārtotās rindas tiek automātiski izdzēstas.

Lūk, piemērs:


IZVEIDOT GALDA lietotājus (
id INT NAV NULL PRIMARY KEY AUTO_INCREMENT,
lietotājvārds VARCHAR (100) NAV VIENKĀRŠS,
full_name VARCHAR (100) NAV NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) dzinējs = InnoDB;
IZVEIDOT GALDA pasūtījumus (
id INT NAV NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NULL,
summa DECIMAL (8,2) NAV NULL,
produkta_nosaukums VARCHAR (200) NOT NULL,
ĀRVALSTA ATSLĒGA (userid) ATSAUCES lietotājiem (id) IZDZĒST KASCADI
) dzinējs = InnoDB;

Jūs kā pēdējo rindiņu pamanīsit klauzulu FOREIGN KEY. Šajā rindā vienkārši norādīts, ka šajā tabulā ir bērnu rindas, kuras saista Lietotāja ID kolonnu viņu vecāku rindai, kas ir id kolonna lietotājiem tabula. Ko tas nozīmē, jebkurā laikā no rindas tiek dzēsta lietotājiem tabulu, mySQL automātiski izdzēsīs visas atbilstošās rindas no pasūtījumiem tabula, kas nodrošina strukturālu integritāti jūsu datu bāzē.

Ņemiet vērā arī dzinējs = InnoDB iepriekš minētā paziņojuma beigās. Lai gan InnoDB tagad ir noklusējuma mySQL tabulas tips, tas ne vienmēr bija, tāpēc tas jāpievieno tikai tāpēc, lai saglabātu drošību, jo kaskāde darbojas tikai ar InnoDB tabulām.

Dizains ar pārliecību

Jūs tagad esat veiksmīgi izveidojis stabilas, labi strukturētas mySQL datu bāzes shēmas. Izmantojot iepriekš minētās zināšanas, jūs tagad varat rakstīt labi organizētas shēmas, kas nodrošina gan veiktspēju, gan strukturālo integritāti.

Kad jūsu shēma ir izveidota, pārliecinieties, ka zināt, kā to izmantot kopā ar šiem būtiskas SQL komandas.

E-pasts
Kā vienlaikus vaicāt vairākas datu bāzes tabulas, pievienojoties SQL

Uzziniet, kā izmantot SQL pievienošanās, lai racionalizētu vaicājumus, ietaupītu laiku un liktu justies kā SQL enerģijas lietotājam.

Saistītās tēmas
  • Nav norādīts
Par autoru
Mets Dižaks (18 raksti publicēti)Vairāk no Matt Dizak

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.