jak ukládat obrázky v databázi MySQL

MySQL patří mezi populární systémy správy databází. Může být použit k ukládání a načítání dat navržených podle aplikací. Většina aplikací je vyžadována pro správu obrázků. Tento tutoriál poskytuje možnosti ukládání obrázků do tabulky MySQL.

poznámky: profesionálové vám mohou pomoci s vývojem databáze obrázků pro vaši společnost nebo váš projekt.

Uložte cestu obrázku

nejjednodušším přístupem je ukládání obrázků do adresářů v systému souborů a ukládání odkazů na fotografie v databázi, jako je SQL & MySQL, například cesta k obrázku, název obrázku atd. Alternativně můžete dokonce uchovávat obrázky na CDN nebo četných hostitelích na nějakém velkém území podstatného území a uchovávat jejich odkazy pro přístup k těmto zdrojům v této databázi.

tímto způsobem nejsme povinni držet celý obrázek v databázi, ale ukládat pouze cestu k obrázku uloženému ve složce. Ukládání obrázků je dobré, pokud budou obrázky vždy ve stejné složce, tj. pokud každý obrázek bude mít svou jedinečnou cestu, která bude vždy stejná. V některých případech však mají být obrázky přeneseny z jedné složky do druhé. V takovém případě je nejlepším řešením vytvořit dynamickou cestu k obrazovému souboru, takže pokud musí být obrázek přesunut, nebude povinnost upravovat databázi.

můžeme aktualizovat existující tabulku a přidat pole cesty k obrázku, jak je uvedeno níže.

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

dalším přístupem je vytvoření samostatné tabulky pro obrázky a přidání odkazu do tabulek pomocí tabulky obrázků. Tímto způsobem může více tabulek ukládat obrázky do jedné tabulky. K ukládání obrázků můžete použít níže uvedenou tabulku.

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

ve výše uvedené tabulce je název skutečný název uloženého obrázku a název je volitelný pro získání vstupu od uživatelů, kteří obrázek nahrávají. Sloupec typu může také rozhodnout, zda je obraz uložen lokálně nebo na CDN. Pokud je uložen lokálně, můžeme pomocí adresáře sloupců určit cestu, kde je obrázek uložen. V případě CDN můžeme pomocí adresy URL sloupce získat základní cestu obrázku. Kromě typu, adresáře a adresy URL můžeme také použít malé, střední a velké k uložení stejného obrázku ve více velikostech.

pokud potřebujete obrázky použít, načtěte je z disku pomocí zadané cesty. Výhodou tohoto přístupu je, že obrázky nemusí být nutně uloženy na disku; místo cesty k obrázku můžeme držet adresu URL a načíst obrázky z libovolného místa přístupného k internetu.

Uložit obrázek do tabulky MySQL

dalším způsobem, jak uložit obrázek do databáze MySQL, je uložit jej do samotné tabulky. Velikost obrázků může být poměrně velká, někdy větší než 1 nebo 2 MB. Takže ukládání obrázků v databázi může způsobit další zatížení vaší databáze a sítě mezi vaší databází a webovým serverem, pokud jsou na samostatných hostitelích.

v tomto přístupu mohou být obrazové soubory náročné na správu. Před provedením dalších operací je musíte nejprve obnovit z databáze.

existují výjimky, kdy je celá databáze uložena v paměti RAM. Databáze MySQL jsou postupně ukládány na disk. To znamená, že vaše databáze obrazové soubory jsou převedeny na kuličky, vložené do databáze, a pak se udržuje na disku. Můžeme se vyhnout mnoha problémům tím, že je jednoduše uložíme na disk, jak je uvedeno v prvním přístupu.

nyní vytvořte obrázek tabulky pro uložení obrázků do databáze. Použil jsem id k identifikaci každého obrázku a titulku k uložení názvu obrázku pro účely zobrazení. Sloupec obrázek ukládá obrázek do tabulky pomocí datového typu jako 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;

shrnutí

tento tutoriál poskytl možnosti ukládání obrázků pomocí databáze MySQL. Stejný přístup lze použít i pro jiné databáze.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.