cum se stochează imagini în baza de date MySQL

MySQL se numără printre sistemele populare de gestionare a bazelor de date. Acesta poate fi folosit pentru a stoca și de a prelua date proiectate în funcție de aplicații. Majoritatea aplicațiilor sunt necesare pentru a gestiona imaginile. Acest tutorial oferă opțiunile pentru a stoca imagini într-un tabel MySQL.

Note: profesioniștii vă pot ajuta cu dezvoltarea bazei de date de imagini pentru compania dvs. sau pentru proiectul dvs.

stocați calea imaginii

cea mai simplă abordare este stocarea imaginilor în directoarele din sistemul de fișiere și stocarea referințelor la fotografiile din Baza de date, cum ar fi SQL & MySQL, de exemplu, calea către imagine, numele imaginii și așa mai departe. Alternativ, puteți chiar să păstrați imagini pe un CDN sau pe numeroase gazde pe o mare întindere de teritoriu substanțial și să păstrați referințele lor pentru a accesa aceste resurse în acea bază de date.

în acest fel, nu suntem obligați să păstrăm întreaga imagine în baza de date, ci să stocăm doar calea către imaginea stocată într-un folder. Stocarea imaginilor este bună dacă imaginile vor fi întotdeauna în același folder, adică dacă fiecare imagine va avea calea sa unică, care va fi întotdeauna aceeași. Cu toate acestea, în unele cazuri, imaginile trebuie transferate dintr-un dosar în altul. În acest caz, cea mai bună soluție este crearea unei căi dinamice către fișierul imagine, deci dacă imaginea trebuie mutată, nu ar exista nicio obligație de modificare a bazei de date.

putem actualiza un tabel existent pentru a adăuga un câmp cale imagine așa cum se arată mai jos.

// Add column to store image path
ALTER TABLE `my_table`
ADD COLUMN `image_pathLocation` varchar(1024)

o altă abordare este crearea unui tabel separat pentru imagini și adăugarea unei referințe în tabele utilizând tabelul imagine. În acest fel, mai multe tabele pot stoca imaginile într-un singur tabel. Puteți utiliza tabelul de mai jos pentru a stoca imaginile.

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

în tabelul de mai sus, numele este numele real al imaginii stocate, iar titlul este opțional pentru a obține informații de la utilizatorii care încarcă imaginea. De asemenea, coloana type poate decide dacă imaginea este stocată local sau pe un CDN. Dacă este stocat local, atunci putem folosi directorul coloanei pentru a specifica calea în care este stocată imaginea. În cazul CDN, putem folosi URL-ul coloanei pentru a obține calea de bază a imaginii. În afară de tip, director și URL, putem folosi și mici, medii și mari pentru a stoca aceeași imagine în mai multe dimensiuni.

când trebuie să utilizați imaginile, recuperați-le de pe disc folosind calea specificată. Avantajul acestei abordări este că imaginile nu trebuie neapărat să fie stocate pe un disc; putem păstra o adresă URL în locul unei căi de imagine și putem prelua imagini din orice locație accesibilă pe internet.

stocați imaginea în tabelul MySQL

un alt mod de a stoca o imagine în baza de date MySQL este să o stocați în tabelul propriu-zis. Dimensiunea imaginilor poate fi destul de mare, uneori mai mare de 1 sau 2 MB. Deci, stocarea imaginilor într-o bază de date poate încărca suplimentar baza de date și rețeaua dintre baza de date și serverul dvs. web dacă sunt pe gazde separate.

în această abordare, fișierele imagine poate fi o provocare pentru a gestiona. Mai întâi trebuie să le restaurați din Baza de date înainte de efectuarea altor operații.

există câteva excepții în care întreaga bază de date este stocată în RAM. Bazele de date MySQL sunt stocate secvențial pe un disc. Aceasta înseamnă că fișierele imagine ale bazei de date sunt convertite în blobs, încorporate într-o bază de date și apoi păstrate pe un disc. Putem evita o mulțime de probleme prin simpla stocare a acestora pe un disc așa cum sa menționat în prima abordare.

acum creați imaginea tabelului pentru a stoca imaginile în baza de date. Am folosit id-ul pentru a identifica fiecare imagine și legendă pentru a stoca numele imaginii în scopuri de afișare. Coloana imagine stochează imaginea în tabel utilizând tipul de date ca LONGBLOB.

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

rezumat

acest tutorial a oferit opțiunile de stocare a imaginilor utilizând baza de date MySQL. Aceeași abordare poate fi urmată și pentru alte baze de date.

Lasă un răspuns

Adresa ta de email nu va fi publicată.