hoe afbeeldingen op te slaan in de MySQL database

MySQL is een van de populaire databasebeheersystemen. Het kan worden gebruikt om gegevens op te slaan en op te halen die zijn ontworpen volgens de toepassingen. De meeste toepassingen zijn nodig om de afbeeldingen te beheren. Deze tutorial biedt de opties om afbeeldingen op te slaan in een MySQL tabel.

opmerkingen: Professionals kunnen u helpen met de ontwikkeling van beelddatabases voor uw bedrijf of uw project.

het Afbeeldingspad

de eenvoudigste aanpak is om afbeeldingen op te slaan in mappen op het bestandssysteem en verwijzingen naar de foto ‘ s in de database op te slaan, zoals SQL & MySQL, bijvoorbeeld het pad naar de afbeelding, de afbeeldingsnaam, enzovoort. Als alternatief, kunt u zelfs beelden op een CDN of een groot aantal hosts over een grote uitgestrektheid van substantieel grondgebied te houden en houden hun referenties om toegang te krijgen tot die bronnen in die database.

op deze manier zijn we niet verplicht om de volledige afbeelding in de database te bewaren, maar om alleen het pad naar de afbeelding in een map op te slaan. Het opslaan van afbeeldingen is goed als de afbeeldingen altijd in dezelfde map staan, dat wil zeggen als elke afbeelding zijn unieke pad heeft dat altijd hetzelfde zal zijn. Echter, in sommige gevallen, de beelden moeten worden overgedragen van de ene map naar de andere. In dat geval is de beste oplossing om een dynamisch pad naar het afbeeldingsbestand te creëren, dus als de afbeelding moet worden verplaatst, is er geen verplichting om de database te wijzigen.

we kunnen een bestaande tabel bijwerken om een afbeeldingspadveld toe te voegen zoals hieronder getoond.

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

een andere aanpak is het creëren van een aparte tabel voor de afbeeldingen en het toevoegen van een referentie in tabellen met behulp van de afbeeldingstabel. Op deze manier kunnen meerdere tabellen de afbeeldingen opslaan in een enkele tabel. U kunt de onderstaande tabel gebruiken om uw afbeeldingen op te slaan.

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

in de bovenstaande tabel is de naam de werkelijke naam van de afbeelding die wordt opgeslagen, en de titel is optioneel om invoer te krijgen van de gebruikers die de afbeelding uploaden. Ook kan de kolom type bepalen of de afbeelding lokaal of op een CDN wordt opgeslagen. Als het lokaal is opgeslagen, kunnen we de kolommap gebruiken om het pad op te geven waar de afbeelding is opgeslagen. In het geval van CDN, kunnen we de kolom URL gebruiken om het basispad van de afbeelding te krijgen. Naast type, directory en URL kunnen we ook small, medium en large gebruiken om dezelfde afbeelding in meerdere formaten op te slaan.

als u de afbeeldingen wilt gebruiken, haal ze dan op van de schijf met behulp van het opgegeven pad. Het voordeel van deze benadering is dat de beelden niet noodzakelijk op een schijf moeten worden opgeslagen; we kunnen een URL in plaats van een afbeeldingspad houden en afbeeldingen ophalen vanaf elke internet-toegankelijke locatie.

Afbeelding opslaan in MySQL-tabel

een andere manier om een afbeelding in de MySQL-database op te slaan is door het in de tabel zelf op te slaan. Afbeeldingen grootte kan vrij groot zijn, soms groter dan 1 of 2MB. Dus, het opslaan van afbeeldingen in een database kan extra belasting op uw database en het netwerk tussen uw database en uw webserver als ze op verschillende hosts.

in deze aanpak kunnen de afbeeldingsbestanden moeilijk te beheren zijn. U moet ze eerst herstellen vanuit de database voordat andere bewerkingen moeten worden uitgevoerd.

er zijn enkele uitzonderingen wanneer de volledige database in RAM is opgeslagen. MySQL databases worden sequentieel opgeslagen op een schijf. Dit betekent dat uw database afbeeldingsbestanden worden geconverteerd naar blobs, ingebed in een database en vervolgens op een schijf worden bewaard. We kunnen veel problemen voorkomen door ze gewoon op te slaan op een schijf zoals vermeld in de eerste aanpak.

Maak nu de tabelafbeelding om de afbeeldingen in de database op te slaan. Ik heb id gebruikt om elke afbeelding en bijschrift te identificeren om de naam van de afbeelding op te slaan voor weergavedoeleinden. De kolom afbeelding slaat de afbeelding op in de tabel met behulp van het gegevenstype als 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;

samenvatting

deze tutorial gaf de opties om afbeeldingen op te slaan met behulp van de MySQL-database. Dezelfde aanpak kan worden gevolgd voor andere databases.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.