Iesācēju ceļvedis mySQL datu bāzes shēmu rakstīšanai

Iesācēju ceļvedis mySQL datu bāzes shēmu rakstīšanai

Izstrādājot programmatūras projektu, viens no vissvarīgākajiem, pamata un raksturīgajiem aspektiem ir pareizi strukturēta datu bāzes shēma. Tas ir līdzvērtīgi mājas celtniecībai, lai pārliecinātos, ka pamats ir pareizi ielikts, pretējā gadījumā krasas 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 uzrakstītu labi izstrādātu datu bāzes shēmu.





kāda modeļa mātesplate man ir

IZVEIDOT TABULU Sintakse

Lai sāktu, atveriet iecienīto teksta redaktoru. Lai izveidotu datu bāzes shēmu, ir nepieciešams tikai vienkāršs 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, lai izveidotu vienu tabulu. Šeit ir pamata piemērs:






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
);

Kā redzat, tiks izveidota datu bāzes tabula ar nosaukumu lietotājiem kas sastāv no četrām kolonnām. Tam vajadzētu būt diezgan tiešam SQL paziņojumam, kas sākas ar IZVEIDOT TABULU , kam seko datu bāzes tabulu nosaukums, pēc tam iekavās tabulas kolonnas, atdalītas ar komatu.

Izmantojiet pareizos kolonnu veidus

Kā parādīts iepriekš, tabulas kolonnas ir atdalītas ar komatiem. Katra kolonnas definīcija sastāv no trim vienām daļām:



COL_NAME TYPE [OPTIONS]

Kolonnas nosaukums, kam seko kolonnas tips, pēc tam visi izvēles parametri. Neobligātos parametrus mēs apskatīsim vēlāk, 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 uzrakstītu labi izveidotas mySQL datu bāzes shēmas.





Definējiet kolonnu opcijas

Nosakot kolonnas, varat arī norādīt dažādas iespējas. Zemāk ir vēl viens piemērs IZVEIDOT TABULU paziņojums, apgalvojums:


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
);

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





  • Lai palīdzētu ar tabulas ātrumu un veiktspēju, visās kolonnās vienmēr jāizmanto NOT NULL. Tas vienkārši norāda, ka kolonnu nevar atstāt tukšu / nulli, kad tiek ievietota rinda.
  • Vienmēr mēģiniet saglabāt kolonnas 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 primārā atslēga, kas nozīmē, ka tā ir unikāla, un palielināsies par vienu katru reizi, kad ieraksts tiek ievietots. Tas parasti jāizmanto visās izveidotajās tabulās, lai jūs varētu viegli atsaukties uz jebkuru tabulas rindu.
  • The statuss kolonna ir ENUM, un tai jābūt vai nu aktīvai, vai neaktīvai. Ja vērtība nav norādīta, tiks sākta jauna rinda ar statusu “aktīvs”.
  • The līdzsvars kolonna sākas ar 0 katrai jaunai rindai, un tā ir summa, kas formatēta ar diviem diviem cipariem aiz komata.
  • The dzimšanas datums kolonna ir vienkārši DATUMS, bet pieļauj arī nulles vērtību, jo dzimšanas datums pēc izveides var nebūt zināms.
  • Visbeidzot, created_at kolonna ir TIMESTAMP un pēc noklusējuma tiek norādīts pašreizējais laiks, kad rinda tika ievietota.

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

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

Šeit ir piemērs:


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;

Jūs pamanīsit klauzulu FOREIGN KEY kā pēdējo rindu. Šajā rindā vienkārši norādīts, ka tabulā ir pakārtotas rindas, kuras ir saistītas ar Lietotāja ID kolonnā uz vecāku rindu, kas ir id sleja lietotājiem tabula. Tas nozīmē, ka ikreiz, kad tiek izdzēsta rinda no lietotājiem tabulā, mySQL automātiski izdzēsīs visas atbilstošās rindas no pasūtījumus tabula, kas palīdz nodrošināt strukturālo 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 tabulas veids MySQL, tas ne vienmēr bija, tāpēc tas ir jāpievieno, lai saglabātu drošību, jo kaskāde darbojas tikai ar InnoDB tabulām.

dators ilgst mūžīgi, lai restartētu Windows 10

Dizains ar pārliecību

Tagad jūs esat ceļā uz stabilu, labi strukturētu mySQL datu bāzes shēmu izveidi. Izmantojot iepriekš minētās zināšanas, tagad varat uzrakstīt labi organizētas shēmas, kas nodrošina gan veiktspēju, gan strukturālu integritāti.

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

Kopīgot Kopīgot Čivināt E -pasts Kā vienlaikus vaicāt vairākas datu bāzes tabulas, izmantojot SQL savienojumus

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

Lasīt Tālāk
Saistītās tēmas Par autoru Mets Dizaks(Publicēti 18 raksti) Vairāk no Matt Dizak

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu