como armazenar imagens no banco de dados MySQL

o MySQL está entre os populares sistemas de gerenciamento de banco de dados. Ele pode ser usado para armazenar e recuperar dados projetados de acordo com os aplicativos. A maioria dos aplicativos é necessária para gerenciar as imagens. Este tutorial fornece as opções para armazenar imagens em uma tabela MySQL.

Notas: os profissionais podem ajudá-lo com o desenvolvimento de banco de dados de imagem para sua empresa ou seu projeto.

Guardar o Caminho da Imagem

A abordagem mais simples é o armazenamento de imagens em diretórios no sistema de arquivos e armazenar referências para as fotos no banco de dados como o SQL & MySQL, por exemplo, o caminho para a imagem, o nome da imagem, e assim por diante. Como alternativa, você pode até manter imagens em um CDN ou em vários hosts em uma grande extensão de território substancial e manter suas referências para acessar esses recursos nesse banco de dados.

desta forma, não somos obrigados a manter a imagem inteira no banco de dados, mas a armazenar apenas o caminho para a imagem armazenada em uma pasta. Armazenar imagens é bom se as imagens estiverem sempre na mesma pasta, ou seja, se cada imagem tiver seu caminho único que será sempre o mesmo. No entanto, em alguns casos, as imagens devem ser transferidas de uma pasta para outra. Nesse caso, a melhor solução é criar um caminho dinâmico para o arquivo de imagem, portanto, se a imagem tiver que ser movida, não haveria obrigação de modificar o banco de dados.

podemos atualizar uma tabela existente para adicionar um campo de caminho de imagem como mostrado abaixo.

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

outra abordagem é criar uma tabela separada para as imagens e adicionar uma referência nas tabelas usando a tabela de imagem. Dessa forma, várias tabelas podem armazenar as imagens em uma única tabela. Você pode usar a tabela abaixo mencionada para armazenar suas imagens.

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

na tabela acima mencionada, o nome é o nome real da imagem que está sendo armazenada e o título é opcional para obter a entrada dos usuários que enviam a imagem. Além disso, a coluna tipo pode decidir se a imagem é armazenada localmente ou em um CDN. Se estiver armazenado localmente, podemos usar o diretório da coluna para especificar o caminho onde a imagem está armazenada. No caso do CDN, podemos usar o URL da coluna para obter o caminho base da imagem. Além do tipo, diretório e URL, também podemos usar pequeno, médio e grande para armazenar a mesma imagem em vários tamanhos.

quando você precisar usar as imagens, recupere-as do disco usando o caminho especificado. A vantagem dessa abordagem é que as imagens não precisam necessariamente ser armazenadas em um disco; podemos manter um URL em vez de um caminho de imagem e recuperar imagens de qualquer local acessível à internet.

armazenar imagem na tabela MySQL

outra maneira de armazenar uma imagem no banco de dados MySQL é armazená-la na própria tabela. O tamanho das imagens pode ser bastante grande, Às vezes maior que 1 ou 2 MB. Portanto, armazenar imagens em um banco de dados pode colocar carga adicional em seu banco de dados e na rede entre seu banco de dados e seu servidor web se estiverem em hosts separados.

nesta abordagem, os arquivos de imagem podem ser difíceis de gerenciar. Você deve primeiro restaurá-los do banco de dados antes que outras operações sejam executadas.

existem algumas exceções em que todo o banco de dados é armazenado na RAM. Bancos de dados MySQL são armazenados sequencialmente em um disco. Isso significa que os arquivos de imagem do banco de dados são convertidos em blobs, incorporados em um banco de dados e mantidos em um disco. Podemos evitar muitos problemas simplesmente armazenando-os em um disco, conforme mencionado na primeira abordagem.

agora Crie a imagem da tabela para armazenar as imagens no banco de dados. Eu usei id para identificar cada imagem e legenda para armazenar o nome da imagem para fins de exibição. A coluna Imagem armazena a imagem na tabela usando o tipo de dados como 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;

resumo

este tutorial forneceu as opções para armazenar imagens usando o banco de dados MySQL. A mesma abordagem pode ser seguida para outros bancos de dados.

Deixe uma resposta

O seu endereço de email não será publicado.