MySQL kuuluu suosittuihin tietokantojen hallintajärjestelmiin. Sitä voidaan käyttää sovellusten mukaan suunniteltujen tietojen tallentamiseen ja hakemiseen. Suurin osa sovelluksista tarvitaan kuvien hallintaan. Tämä opetusohjelma tarjoaa vaihtoehtoja tallentaa kuvia MySQL-taulukossa.
huomautuksia: ammattilaiset voivat auttaa yrityksen tai projektin kuvatietokantojen kehittämisessä.
Tallenna Kuvapolku
yksinkertaisin lähestymistapa on tallentaa kuvat tiedostojärjestelmän hakemistoihin ja tallentaa viittaukset valokuviin tietokantaan, kuten SQL & MySQL, esimerkiksi kuvan polku, kuvan nimi ja niin edelleen. Vaihtoehtoisesti voit jopa säilyttää kuvia CDN: llä tai lukuisilla isännillä jossain laajalla merkittävällä alueella ja säilyttää niiden viitteet näiden resurssien käyttämiseen kyseisessä tietokannassa.
näin meidän ei tarvitse pitää koko kuvaa tietokannassa vaan tallentaa vain kansioon tallennetun kuvan polku. Kuvien tallentaminen on hyvä, jos kuvat ovat aina samassa kansiossa, eli jos jokaisella kuvalla on ainutlaatuinen polkunsa, joka on aina sama. Joissakin tapauksissa kuvat on kuitenkin siirrettävä kansiosta toiseen. Tällöin paras ratkaisu on luoda dynaaminen polku kuvatiedostoon, joten jos kuvaa joudutaan siirtämään, ei ole velvollisuutta muokata tietokantaa.
voimme päivittää olemassa olevaa taulukkoa lisätäksemme kuvan polkukentän alla esitetyllä tavalla.
// Add column to store image path
ALTER TABLE `my_table`
ADD COLUMN `image_pathLocation` varchar(1024)
toinen lähestymistapa on luoda kuville erillinen taulukko ja lisätä taulukkoihin viittaus kuvataulukon avulla. Näin useat taulukot voivat tallentaa kuvat yhteen taulukkoon. Voit käyttää alla mainittua taulukkoa kuvien tallentamiseen.
// Create the Image table
CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`directory` VARCHAR(512) NULL,
`size` FLOAT NOT NULL,
`type` VARCHAR(50) NOT NULL,
`url` VARCHAR(2048) NULL,
`medium` VARCHAR(1024) NULL,
`small` VARCHAR(1024) NULL,
`thumb` VARCHAR(1024) NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;
yllä olevassa taulukossa nimi on tallennettavan kuvan oikea nimi, ja otsikko on valinnainen, jotta kuvan lataavilta käyttäjiltä saadaan syöte. Myös tyyppi-sarake voi päättää, tallennetaanko kuva paikallisesti vai CDN: lle. Jos se on tallennettu paikallisesti, voimme sarakehakemiston avulla määrittää polun, johon kuva on tallennettu. CDN: n tapauksessa voimme käyttää sarakkeen URL-osoitetta saadaksemme kuvan pohjapolun. Tyypin, hakemiston ja URL-osoitteen lisäksi voimme käyttää myös pieniä, keskikokoisia ja suuria tallentamaan saman kuvan useassa koossa.
kun haluat käyttää kuvia, Hae ne levyltä määritettyä polkua käyttäen. Tämän lähestymistavan etu on, että kuvia ei välttämättä tarvitse tallentaa levylle; voimme pitää URL-osoitetta kuvapolun sijaan ja hakea kuvia mistä tahansa internet-saatavilla olevasta paikasta.
säilytä Kuva MySQL-taulukossa
toinen tapa tallentaa kuva MySQL-tietokantaan on tallentaa se itse taulukkoon. Kuvien koko voi olla melko suuri, joskus suurempi kuin 1 tai 2MB. Niin, kuvien tallentaminen tietokantaan voi lisätä kuormitusta tietokantaan ja verkon välillä tietokannan ja web-palvelimen, jos ne ovat erillisiä isäntiä.
tässä lähestymistavassa kuvatiedostojen hallinta voi olla haastavaa. Sinun täytyy ensin palauttaa ne tietokannasta ennen muita toimintoja on suoritettava.
on joitakin poikkeuksia, joissa koko tietokanta on tallennettu RAM-muistiin. MySQL-tietokannat tallennetaan peräkkäin levylle. Tämä tarkoittaa, että tietokannan kuvatiedostot muunnetaan blobs, upotettu tietokantaan, ja sitten pidetään levyllä. Voimme välttää paljon ongelmia yksinkertaisesti tallentamalla ne levylle, kuten ensimmäisessä lähestymistavassa mainittiin.
luo nyt taulukuva tallentaaksesi kuvat tietokantaan. Olen käyttänyt id: tä tunnistaakseni jokaisen kuvan ja kuvatekstin tallentaakseni kuvan nimen näyttötarkoituksiin. Kuvasarake tallentaa kuvan taulukkoon käyttäen tietotyyppiä LONGBLOBINA.
// Create the Image table
CREATE TABLE image (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(1024) NOT NULL,
`title` VARCHAR(2048) NULL,
`description` VARCHAR(4096) NULL,
`extension` VARCHAR(160) NULL,
`size` FLOAT NOT NULL,
`caption` VARCHAR(1024) NULL,
`altText` VARCHAR(512) NULL,
`picture` LONGBLOB NOT NULL,
`createdAt` DATETIME NULL,
`modifiedAt` DATETIME NULL,
PRIMARY KEY (`id`),
INDEX `idx_image_name` (`name` ASC),
INDEX `idx_image_type` (`type` ASC)
) ENGINE = InnoDB;
Yhteenveto
tämä opetusohjelma tarjosi mahdollisuuden tallentaa kuvia MySQL-tietokantaan. Samaa lähestymistapaa voidaan noudattaa myös muissa tietokannoissa.