Tak, możesz używać obiektów BLOB do danych binarnych w Oracle. (I wiele innych baz danych.) Używamy ich tutaj do przechowywania plików PDF.
Widziałem, jak to się robi w obie strony. Przechowuj obrazy w bazie danych lub przechowuj obrazy w systemie plików, a następnie zapisz nazwę pliku w bazie danych.
Zalety przechowywania w bazie danych
Wszystko jest w bazie danych. Wyciągasz płytę, powiązany obraz jest z nią.
Uzyskujesz integralność danych między plikiem a powiązanymi z nim danymi (oczywiście przy założeniu dobrego projektu schematu).
Jedna logiczna operacja, aby uzyskać dane i obraz.
Uważam, że skalowanie bazy danych do przechowywania dużej ilości danych binarnych jest trudniejsze i droższe niż w przypadku alternatywnego systemu plików.
Wady przechowywania w bazie danych
Nie wszystkie narzędzia ułatwiają przeglądanie obrazów.
Nie można łatwo uzyskać dostępu do obrazów z sieci.
W zależności od rozmiaru i ilości pliku, w niektórych tabelach może być dużo surowych danych.
Ładowanie i przechowywanie danych obiektów blob nie zawsze jest proste. (Niedawno napisałem niestandardowy typ danych dla Hibernate, na przykład do obsługi naszych blobowanych plików PDF.)
Zalety systemu plików
Prawdopodobnie bardziej wydajny przy odczytywaniu i zapisywaniu plików.
Jeśli chcesz udostępnić obraz w sieci, możesz to zrobić bezpośrednio z systemu plików.
Łatwiejsze przeglądanie obrazów podczas debugowania i wiele bezpłatnych narzędzi do tego.
Uważam, że łatwiej jest skalować aplikację podczas umieszczania obiektów blob w systemie plików.
Wady systemu plików
Problemy z integralnością/spójnością danych. Zmień coś w strukturze pliku, a będziesz musiał wykonać kolejny krok w bazie danych.
Kopia zapasowa to kolejna rzecz.
Wiele operacji logicznych (odczyt z bazy danych, odczyt z systemu plików) w celu uzyskania obrazu i danych.