Pradedančiųjų „MySQL“ duomenų bazių schemų rašymo vadovas

Pradedančiųjų „MySQL“ duomenų bazių schemų rašymo vadovas

Kuriant programinės įrangos projektą, vienas iš svarbiausių, pagrindinių ir esminių aspektų yra tinkamai struktūrizuota duomenų bazės schema. Tai prilygsta statant namą, kad įsitikintumėte, jog pamatai yra tinkamai pakloti, kitaip tikimybė statyti kokybišką namą smarkiai sumažėja.





Stebėtinai lengviau, nei būtų galima pagalvoti, išmoksime įvairių aspektų, naudojamų gerai sukurtos duomenų bazės schemai parašyti.





zip failo apsauga slaptažodžiu windows 10

KURTI LENTELĘ Sintaksė

Norėdami pradėti, atidarykite mėgstamą teksto rengyklę. Norint sukurti duomenų bazės schemą, reikia tik paprasto teksto failo. Duomenų bazę sudaro kelios lentelės, kurių kiekviena susideda iš stulpelių, o CREATE TABLE sintaksė naudojama kuriant vieną lentelę. Štai pagrindinis pavyzdys:






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

Kaip matote, bus sukurta duomenų bazės lentelė vartotojų kurią sudaro keturi stulpeliai. Tai turėtų būti gana paprastas SQL sakinys, prasidedantis KURTI LENTELĘ , po to - duomenų bazės lentelių pavadinimas, tada skliausteliuose lentelės stulpeliai atskirti kableliu.

Naudokite teisingus stulpelių tipus

Kaip parodyta aukščiau, lentelės stulpeliai yra atskirti kableliais. Kiekvieną stulpelio apibrėžimą sudaro trys tos pačios dalys:



COL_NAME TYPE [OPTIONS]

Stulpelio pavadinimas, po kurio nurodytas stulpelio tipas, tada bet kokie pasirenkami parametrai. Vėliau pasirenkame pasirenkamuosius parametrus, tačiau daugiausia dėmesio skiriant stulpelio tipui, toliau pateikiami dažniausiai naudojami stulpelių tipai:

Visais tikslais aukščiau nurodytų stulpelių tipai yra viskas, ko jums reikia norint parašyti gerai sukurtas „MySQL“ duomenų bazės schemas.





Apibrėžkite stulpelių parinktis

Apibrėždami stulpelius taip pat galite nurodyti įvairias parinktis. Žemiau yra dar vienas pavyzdys KURTI LENTELĘ teiginys:


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

Pirmiau minėta informacija gali atrodyti šiek tiek bauginanti, tačiau nesijaudinkite, tai gana paprasta. Sugadinta, štai kas vyksta aukščiau pateiktame teiginyje:





  • Visuose stulpeliuose visada turėtumėte naudoti NOT NULL, kad padėtumėte greičiau ir efektyviau lentelę. Tai tiesiog nurodo, kad stulpelis negali būti paliktas tuščias / nulis, kai įterpiama eilutė.
  • Visada stenkitės, kad stulpelio dydis būtų kuo mažesnis, nes tai padeda pagerinti greitį ir našumą.
  • The id stulpelis yra sveikas skaičius, taip pat yra pagrindinis lentelės raktas, reiškiantis, kad jis yra unikalus, ir padidės po vieną kiekvieną kartą įterpiant įrašą. Paprastai tai turėtų būti naudojama visose jūsų sukurtose lentelėse, kad galėtumėte lengvai nurodyti bet kurią lentelės eilutę.
  • The būsena stulpelis yra ENUM ir jo vertė turi būti „aktyvi“ arba „neaktyvi“. Jei reikšmė nenurodyta, nauja eilutė prasidės būsena „aktyvi“.
  • The pusiausvyra stulpelis prasideda nuo 0 kiekvienai naujai eilutei ir yra suma, suformuota dviem dviem dešimtainiais taškais.
  • The Gimimo data stulpelis yra tiesiog DATA, bet taip pat leidžia nustatyti nulinę reikšmę, nes sukūrimo data gali būti nežinoma.
  • Galiausiai, sukurtas_at stulpelis yra TIMESTAMP ir pagal numatytuosius nustatymus yra dabartinis laikas, kai eilutė buvo įterpta.

Aukščiau pateiktas yra gražiai struktūrizuotos duomenų bazės lentelės pavyzdys ir turėtų būti naudojamas kaip pavyzdys.

Vienas iš didžiausių privalumų naudojant reliatyvias duomenų bazes, tokias kaip mySQL yra puiki parama užsienio raktų apribojimams ir pakopoms. Tai yra tada, kai susiejate dvi lenteles kartu su stulpeliu, sudarydami tėvų ir tėvų santykį, taigi, ištrynus pirminę eilutę, būtinos antrinės eilutės taip pat automatiškai ištrinamos.

Štai pavyzdys:


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;

Paskutinę eilutę pastebėsite sąlygą UŽSIENIO RAKTAS. Šioje eilutėje tiesiog teigiama, kad šioje lentelėje yra antrinių eilučių, susietų su Vartotojo ID stulpelį į pagrindinę eilutę, kuri yra id skiltyje vartotojų lentelę. Tai reiškia, kad bet kuriuo metu eilutė ištrinama iš vartotojų lentelę, „mySQL“ automatiškai ištrins visas atitinkamas eilutes iš užsakymų lentelė, padedanti užtikrinti struktūrinį duomenų bazės vientisumą.

Taip pat atkreipkite dėmesį į variklis = „InnoDB“ aukščiau pateikto teiginio pabaigoje. Nors „InnoDB“ dabar yra numatytasis „MySQL“ lentelės tipas, tai ne visada buvo, todėl tai turėtų būti pridėta tik tam, kad liktų saugi, nes kaskadavimas veikia tik su „InnoDB“ lentelėmis.

ekranas apverstas „Windows 10“

Dizainas su pasitikėjimu

Dabar jau galite pradėti kurti tvirtas, gerai struktūruotas „MySQL“ duomenų bazių schemas. Naudodamiesi pirmiau minėtomis žiniomis, dabar galite parašyti gerai suplanuotas schemas, užtikrinančias tiek našumą, tiek struktūrinį vientisumą.

Turėdami savo schemą, įsitikinkite, kad žinote, kaip ją naudoti su jais esminės SQL komandos .

Dalintis Dalintis „Tweet“ Paštu Kaip užklausti kelias duomenų bazių lenteles vienu metu naudojant SQL jungtis

Sužinokite, kaip naudoti SQL jungtis, siekiant supaprastinti užklausas, sutaupyti laiko ir jaustis kaip SQL galios vartotojas.

Skaityti toliau
Susijusios temos Apie autorių Mattas Dizakas(Paskelbta 18 straipsnių) Daugiau iš Matt Dizak

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia