Ohjelmistoprojektia kehitettäessä yksi tärkeimmistä, perustavimmista ja sisäisimmistä näkökohdista on oikein jäsennelty tietokantakaava. Se vastaa taloa rakennettaessa tarvetta varmistaa, että perusta on asianmukaisesti asetettu, muuten mahdollisuudet laadukkaan talon rakentamiseen vähenevät huomattavasti.
Yllättävän helpompaa kuin luulisi, oppikaamme eri puolet, joita käytetään hyvin suunnitellun tietokantakaavion kirjoittamiseen.
LUO TAULUKON syntaksi
Aloita avaamalla suosikkisi tekstieditori. Tietokantamallin luominen ei vaadi muuta kuin pelkkää tekstitiedostoa. Tietokanta koostuu useista taulukoista, joista jokainen koostuu sarakkeista, ja CREATE TABLE -syntaksia käytetään yhden taulukon luomiseen. Tässä on perusesimerkki:
LUO TAULUKON käyttäjät
id INT EI NULL,
is_active TINY INT EI NULL,
full_name VAR CHAR (100) EI NULL,
sähköposti VARCHAR (100) EI NULL
);
Kuten näette, tämä luo tietokantataulukon nimeltä käyttäjille joka koostuu neljästä sarakkeesta. Tämän pitäisi olla melko suoraviivainen SQL-käsky alkaen
LUO TAULUKKO, jota seuraa tietokantataulukoiden nimi, sitten sulkeissa taulukon sarakkeet pilkuilla erotettuna.Käytä oikeita saraketyyppejä
Kuten yllä on esitetty, sarakkeet, joista taulukko koostuu, erotetaan pilkuilla. Jokainen sarakemääritys koostuu kolmesta samasta osasta:
COL_NAME TYYPPI [VALINNAT]
Sarakkeen nimi, jota seuraa saraketyyppi ja sitten kaikki valinnaiset parametrit. Pääset valinnaisiin parametreihin myöhemmin, mutta keskittymällä saraketyyppiin alla luetellaan yleisimmin käytetyt saraketyypit:
Kaikista syistä yllä olevat saraketyypit ovat kaikki mitä sinun tarvitsee kirjoittaa hyvin rakennettuihin mySQL-tietokantamalleihin.
Määritä sarakkeen asetukset
Sarakkeita määriteltäessä voit myös määrittää useita vaihtoehtoja. Alla on toinen esimerkki LUO TAULUKKO lausunto:
LUO TAULUKON käyttäjät
id INT EI NULL PRIMARY KEY AUTO_INCREMENT,
käyttäjänimi VARCHAR (100) EI NULL UNIQUE,
status ENUM ('aktiivinen', 'ei aktiivinen') EI NULL DEFAULT 'aktiivinen',
saldo DECIMAL (8,2) EI NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP EI NULL DEFAULT CURRENT_TIMESTAMP
);
Edellä mainittu saattaa näyttää hieman pelottavalta, mutta ei tuskailla, se on melko yksinkertaista. Hajotettuna, tässä tapahtuu yllä olevassa lausunnossa:
- Käytä aina NOT NULL -toimintoa kaikissa sarakkeissa, jotka auttavat taulukon nopeuden ja suorituskyvyn parantamisessa. Tämä yksinkertaisesti määrittää, että saraketta ei voi jättää tyhjäksi / tyhjäksi, kun rivi lisätään.
- Yritä aina pitää sarakkeen koko mahdollisimman realistisesti, koska se auttaa parantamaan nopeutta ja suorituskykyä.
- id sarake on kokonaisluku, on myös taulukon ensisijainen avain, mikä tarkoittaa, että se on ainutlaatuinen, ja se kasvaa yhdellä kerralla, kun tietue lisätään. Tätä tulisi yleensä käyttää kaikissa luomissasi taulukoissa, jotta voit helposti viitata mihin tahansa yksittäiseen taulukon riviin.
- Tila sarake on ENUM ja sen arvon on oltava joko "aktiivinen" tai "ei-aktiivinen". Jos arvoa ei määritetä, uusi rivi alkaa tilalla "aktiivinen".
- saldo sarake alkaa nollasta jokaisella uudella rivillä, ja on summa, joka on muotoiltu kahdella desimaalipisteellä.
- syntymäaika sarake on yksinkertaisesti PÄIVÄYS, mutta sallii myös nolla-arvon, koska syntymäaikaa ei välttämättä tiedetä luomisen yhteydessä.
- Viimeisenä luotu_t sarake on TIMESTAMP ja oletusarvoisesti nykyinen aika, jolloin rivi lisättiin.
Yllä oleva on esimerkki hienostuneesta tietokantataulukosta, ja sitä tulisi käyttää esimerkkinä jatkossa.
Yksi suurimmista eduista relaatiotietokantojen, kuten mySQL on sen erinomainen tuki ulkomaisille avainrajoituksille ja kaskadille. Tällöin linkität kaksi taulukkoa yhteen sarakkeella muodostaen vanhemman ja lapsen välisen suhteen, joten kun ylätason rivi poistetaan, myös tarvittavat alirivit poistetaan automaattisesti.
Tässä on esimerkki:
LUO TAULUKON käyttäjät
id INT EI NULL PRIMARY KEY AUTO_INCREMENT,
käyttäjänimi VARCHAR (100) EI NULL UNIQUE,
full_name VARCHAR (100) EI NULL,
created_at TIMESTAMP EI NULL DEFAULT CURRENT_TIMESTAMP
) moottori = InnoDB;
LUO TAULUKON tilaukset (
id INT EI NULL PRIMARY KEY AUTO_INCREMENT,
userid INT EI NULL,
määrä DECIMAL (8,2) EI NULL,
tuotenimi VARCHAR (200) EI NULL,
ULKOMAAN AVAIN (userid) VIITTAA käyttäjiä (id) POISTA KASADI
) moottori = InnoDB;
Huomaat FOREIGN KEY -lausekkeen viimeisenä rivinä. Tällä rivillä yksinkertaisesti sanotaan, että tämä taulukko sisältää alirivejä, jotka on linkitetty käyttäjätunnus -sarakkeesta heidän ylärivilleen, joka on id -sarakkeessa käyttäjille pöytä. Tämä tarkoittaa sitä, että rivi poistetaan aina käyttäjille taulukko, mySQL poistaa automaattisesti kaikki vastaavat rivit tilauksia taulukko, joka auttaa varmistamaan rakenteellisen eheyden tietokannassasi.
Huomaa myös moottori = InnoDB yllä olevan lausunnon lopussa. Vaikka InnoDB on nyt oletusarvoinen mySQL-taulukkotyyppi, se ei ollut aina, joten se on lisättävä vain pysyäkseen turvassa, koska kaskadointi toimii vain InnoDB-pöytien kanssa.
Suunnittelu luottavaisin mielin
Olet nyt matkalla kohti vankkojen, hyvin jäsenneltyjen mySQL-tietokantamallien suunnittelua. Yllä olevan tiedon avulla voit nyt kirjoittaa hyvin järjestettyjä skeemejä, jotka tarjoavat sekä suorituskyvyn että rakenteellisen eheyden.
Kun skeema on paikallaan, varmista, että osaat käyttää sitä näiden kanssa välttämättömät SQL-komennot.
Opi käyttämään SQL-liittymiä virtaviivaistamaan kyselyjä, säästämään aikaa ja tuntemaan itsesi SQL-tehokäyttäjäksi.
- Määrittelemätön
Tilaa uutiskirjeemme
Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja erikoistarjouksia!
Vielä yksi askel !!!
Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostissa.