MySQL är bland de populära databashanteringssystemen. Den kan användas för att lagra och hämta data utformade enligt applikationerna. De flesta applikationer krävs för att hantera bilderna. Denna handledning ger alternativ för att lagra bilder i en MySQL-tabell.
anmärkningar: professionella kan hjälpa dig med bilddatabasutveckling för ditt företag eller ditt projekt.
lagra Bildvägen
det enklaste sättet är att lagra bilder i kataloger på filsystemet och lagra referenser till bilderna i databasen som SQL & MySQL, till exempel sökvägen till bilden, bildnamnet och så vidare. Alternativt kan du till och med behålla bilder på en CDN eller många värdar över en stor yta av betydande territorium och behålla sina referenser för att komma åt dessa resurser i den databasen.
på detta sätt är vi inte skyldiga att hålla hela bilden i databasen utan att bara lagra sökvägen till bilden som är lagrad i en mapp. Att lagra bilder är bra om bilderna alltid finns i samma mapp, dvs om varje bild har sin unika väg som alltid kommer att vara densamma. I vissa fall ska bilderna överföras från en mapp till en annan. I så fall är den bästa lösningen att skapa en dynamisk sökväg till bildfilen, så om bilden måste flyttas skulle det inte finnas någon skyldighet att ändra databasen.
vi kan uppdatera en befintlig tabell för att lägga till ett bildvägsfält som visas nedan.
// Add column to store image path
ALTER TABLE `my_table`
ADD COLUMN `image_pathLocation` varchar(1024)
ett annat tillvägagångssätt är att skapa en separat tabell för bilderna och lägga till en referens i tabeller med hjälp av bildtabellen. På detta sätt kan flera tabeller lagra bilderna i en enda tabell. Du kan använda nedanstående tabell för att lagra dina bilder.
// 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;
i ovannämnda tabell är namnet det faktiska namnet på bilden som lagras, och titeln är valfri för att få inmatning från användarna som laddar upp bilden. Kolumnen Typ kan också avgöra om bilden lagras lokalt eller på en CDN. Om den lagras lokalt kan vi använda kolumnkatalogen för att ange sökvägen där bilden lagras. När det gäller CDN kan vi använda kolumnadressen för att få basvägen för bilden. Förutom typ, katalog och URL kan vi också använda små, medelstora och stora för att lagra samma bild i flera storlekar.
när du behöver använda bilderna, hämta dem från disken med den angivna sökvägen. Detta tillvägagångssätt är att bilderna inte nödvändigtvis behöver lagras på en disk; vi kan hålla en URL istället för en bildväg och hämta bilder från vilken internet-tillgänglig plats som helst.
lagra bild i MySQL-tabellen
ett annat sätt att lagra en bild i MySQL-databasen är att lagra den i själva tabellen. Bildstorleken kan vara ganska stor, ibland större än 1 eller 2 MB. Så, lagra bilder i en databas kan lägga extra belastning på din databas och nätverket mellan databasen och din webbserver om de är på separata värdar.
i detta tillvägagångssätt kan bildfilerna vara utmanande att hantera. Du måste först återställa dem från databasen innan andra åtgärder ska utföras.
det finns några undantag där hela databasen lagras i RAM. MySQL-databaser lagras sekventiellt på en disk. Det betyder att dina databasbildfiler konverteras till blobbar, inbäddas i en databas och sedan hålls på en disk. Vi kan undvika många problem genom att helt enkelt lagra dem på en disk som nämnts i det första tillvägagångssättet.
skapa nu tabellbilden för att lagra bilderna i databasen. Jag har använt id för att identifiera varje bild och bildtext för att lagra namnet på bilden för visningsändamål. Bildkolumnen lagrar bilden i tabellen med datatypen som 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;
sammanfattning
denna handledning gav alternativen för att lagra bilder med MySQL-databasen. Samma tillvägagångssätt kan följas för andra databaser.