Myskl er blandt de populære databasestyringssystemer. Det kan bruges til at gemme og hente data designet i henhold til applikationerne. De fleste af applikationerne er nødvendige for at administrere billederne. Denne vejledning giver mulighed for at gemme billeder i en Myskl-tabel.
bemærkninger: fagfolk kan hjælpe dig med billeddatabaseudvikling til din virksomhed eller dit projekt.
Gem Billedstien
den enkleste tilgang er at gemme billeder i mapper på filsystemet og gemme referencer til billederne i databasen som f.eks. Alternativt kan du endda opbevare billeder på en CDN eller adskillige værter på tværs af en stor vidde af betydeligt territorium og beholde deres referencer for at få adgang til disse ressourcer i den database.
på denne måde er vi ikke forpligtet til at opbevare hele billedet i databasen, men kun at gemme stien til det billede, der er gemt i en mappe. Lagring af billeder er godt, hvis billederne altid vil være i samme mappe, dvs.hvis hvert billede vil have sin unikke sti, der altid vil være den samme. I nogle tilfælde skal billederne dog overføres fra en mappe til en anden. I så fald er den bedste løsning at oprette en dynamisk sti til billedfilen, så hvis billedet skal flyttes, er der ingen forpligtelse til at ændre databasen.
vi kan opdatere en eksisterende tabel for at tilføje et billedstifelt som vist nedenfor.
// Add column to store image path
ALTER TABLE `my_table`
ADD COLUMN `image_pathLocation` varchar(1024)
en anden tilgang er at oprette en separat tabel til billederne og tilføje en reference i tabeller ved hjælp af billedtabellen. På denne måde kan flere tabeller gemme billederne i en enkelt tabel. Du kan bruge nedenstående tabel til at gemme dine billeder.
// 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 ovennævnte tabel er navnet det faktiske navn på det billede, der gemmes, og titlen er valgfri for at få input fra de brugere, der uploader billedet. Typen kolonne kan også afgøre, om billedet er gemt lokalt eller på en CDN. Hvis det er gemt lokalt, kan vi bruge kolonnekataloget til at specificere stien, hvor billedet er gemt. I tilfælde af CDN kan vi bruge kolonne-URL ‘ en til at få billedets basissti. Bortset fra type, mappe og URL kan vi også bruge små, mellemstore og store til at gemme det samme billede i flere størrelser.
når du skal bruge billederne, skal du hente dem fra disken ved hjælp af den angivne sti. Denne tilgangs fordel er, at billederne ikke nødvendigvis skal gemmes på en disk; vi kan holde en URL i stedet for en billedsti og hente billeder fra enhver internet-tilgængelig placering.
Gem billede i tabellen
en anden måde at gemme et billede i databasen er at gemme det i selve tabellen. Billedstørrelsen kan være ret stor, nogle gange større end 1 eller 2 MB. Så lagring af billeder i en database kan lægge ekstra belastning på din database og netværket mellem din database og din internetserver, hvis de er på separate værter.
i denne tilgang kan billedfilerne være udfordrende at styre. Du skal først gendanne dem fra databasen, før andre operationer skal udføres.
der er nogle undtagelser, hvor hele databasen er gemt i RAM. Databaserne gemmes sekventielt på en disk. Dette betyder, at dine databasebilledfiler konverteres til klatter, integreres i en database og derefter opbevares på en disk. Vi kan undgå mange problemer ved blot at gemme dem på en disk som nævnt i den første tilgang.
Opret nu tabelbilledet for at gemme billederne i databasen. Jeg har brugt id til at identificere hvert billede og billedtekst for at gemme navnet på billedet til visningsformål. Billedkolonnen gemmer billedet i tabellen ved hjælp af 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;
Resume
denne vejledning gav mulighed for at gemme billeder ved hjælp af databasen. Den samme tilgang kan følges for andre databaser.