jak przechowywać zdjęcia w bazie danych MySQL

MySQL należy do popularnych systemów zarządzania bazami danych. Może być używany do przechowywania i pobierania danych zaprojektowanych zgodnie z aplikacjami. Większość aplikacji jest wymagana do zarządzania obrazami. Ten samouczek zawiera opcje przechowywania obrazów w tabeli MySQL.

uwagi: profesjonaliści mogą pomóc w tworzeniu bazy danych obrazów dla Twojej firmy lub projektu.

przechowuj ścieżkę obrazu

najprostszym podejściem jest przechowywanie obrazów w katalogach w systemie plików i przechowywanie odniesień do zdjęć w bazie danych, takich jak SQL & MySQL, na przykład ścieżka do obrazu, nazwa obrazu i tak dalej. Alternatywnie możesz nawet przechowywać obrazy na CDN lub wielu hostach na dużym obszarze znacznego terytorium i zachować ich odniesienia, aby uzyskać dostęp do tych zasobów w tej bazie danych.

w ten sposób nie jesteśmy zobowiązani do przechowywania całego obrazu w bazie danych, ale do przechowywania tylko ścieżki do obrazu zapisanego w folderze. Przechowywanie obrazów jest dobre, jeśli obrazy będą zawsze w tym samym folderze, tj. jeśli każdy obraz będzie miał swoją unikalną ścieżkę, która zawsze będzie taka sama. Jednak w niektórych przypadkach obrazy mają być przenoszone z jednego folderu do drugiego. W takim przypadku najlepszym rozwiązaniem jest stworzenie dynamicznej ścieżki do pliku obrazu, więc jeśli obraz ma zostać przesunięty, nie będzie obowiązku modyfikowania bazy danych.

możemy zaktualizować istniejącą tabelę, aby dodać pole ścieżki obrazu, jak pokazano poniżej.

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

inną metodą jest utworzenie oddzielnej tabeli dla obrazów i dodanie odniesienia w tabelach za pomocą tabeli obrazów. W ten sposób wiele tabel może przechowywać obrazy w jednej tabeli. Możesz użyć poniższej tabeli do przechowywania zdjęć.

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

w powyższej tabeli nazwa jest rzeczywistą nazwą przechowywanego obrazu, a tytuł jest opcjonalny, aby uzyskać dane wejściowe od użytkowników przesyłających obraz. Kolumna Typ może również zdecydować, czy obraz jest przechowywany lokalnie, czy w sieci CDN. Jeśli jest przechowywany lokalnie, wtedy możemy użyć katalogu kolumny, aby określić ścieżkę, w której jest przechowywany obraz. W przypadku CDN możemy użyć adresu URL kolumny, aby uzyskać ścieżkę bazową obrazu. Oprócz typu, katalogu i adresu URL, możemy również użyć małych, średnich i dużych, aby przechowywać ten sam obraz w wielu rozmiarach.

gdy musisz użyć zdjęć, pobierz je z dysku przy użyciu określonej ścieżki. Zaletą takiego podejścia jest to, że zdjęcia niekoniecznie muszą być przechowywane na dysku; możemy przechowywać adres URL zamiast ścieżki obrazu i pobierać obrazy z dowolnego miejsca dostępnego w Internecie.

przechowuj obraz w tabeli MySQL

innym sposobem przechowywania obrazu w bazie danych MySQL jest przechowywanie go w samej tabeli. Rozmiar zdjęć może być dość duży, czasami większy niż 1 lub 2MB. Tak więc przechowywanie obrazów w bazie danych może dodatkowo obciążać bazę danych i sieć między bazą danych a serwerem internetowym, jeśli znajdują się na oddzielnych hostach.

w takim podejściu Zarządzanie plikami obrazów może być trudne. Musisz najpierw przywrócić je z bazy danych przed wykonaniem innych operacji.

istnieją pewne wyjątki, w których cała baza danych jest przechowywana w pamięci RAM. Bazy danych MySQL są kolejno przechowywane na dysku. Oznacza to, że pliki obrazów bazy danych są konwertowane na obiekty BLOB, osadzone w bazie danych, a następnie przechowywane na dysku. Możemy uniknąć wielu problemów, po prostu przechowując je na dysku, jak wspomniano w pierwszym podejściu.

teraz Utwórz obraz tabeli, aby zapisać obrazy w bazie danych. Użyłem identyfikatora do identyfikacji każdego obrazu i podpisu, aby zapisać nazwę obrazu do celów wyświetlania. Kolumna picture zapisuje obraz w tabeli przy użyciu typu danych 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;

podsumowanie

ten samouczek zawiera opcje przechowywania obrazów przy użyciu bazy danych MySQL. To samo podejście można zastosować w przypadku innych baz danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.