Jak i gdzie przechowywać zdjęcia?

0

Witam, jestem w trakcie pisania sklepu internetowego i chciałbym dowiedzieć się które podejście jest lepsze.

  1. Zdjęcia przechowywane są na serwerze
  2. Zdjęcia przechowywane są w bazie danych (z tym podejściem spotkałem się w jednej z książek)

Pozdrawiam

0

Do przechowywania plików służy generalnie system plików, dlatego moim zdaniem nie ma potrzeby zapychać bazy danych plikami, bo to tylko zwiększa jej rozmiar i niepotrzebnie zapycha, nie wiadomo po co. Baza danych, jak sama nazwa wskazuje zasadniczo służy do przechowywania danych. I też jeżeli chodzi o kwestie kontroli dostępu do danych, poziomu bezpieczeństwa, może to przemawiać za nie przechowywaniem plików w bazie, no chyba, że jest ich ogrom, to może wtedy wszystko mieć w jednym miejscu i kopiować jednym machnięciem, ale to z kolei nie wiem, czy nie spowalnia.

0

W plikach jest wydajniej.

0

jak wyżej: pliki
+
np pełna lub częściowa ścieżka lub nazwa pliku w bazie.

0
moryszczak napisał(a):

Do przechowywania plików służy generalnie system plików, dlatego moim zdaniem nie ma potrzeby zapychać bazy danych plikami, bo to tylko zwiększa jej rozmiar i niepotrzebnie zapycha, nie wiadomo po co. Baza danych, jak sama nazwa wskazuje zasadniczo służy do przechowywania danych.

W sensie, że zdjęcie to nie dane?

mr_jaro napisał(a):

W plikach jest wydajniej.

Mierzyłeś to jakoś? Bo ja bym taki pewny nie był, zwłaszcza jeśli się zastanowić nad tym, co to tak naprawdę znaczy "w bazie".

Trzymanie plików poza bazą może wydawać się fajnym pomysłem, ale komplikuje logikę aplikacji i tworzy problemy z obsługą transakcji.

Dlatego dobrym rozwiązaniem jest kolumna typu FILESTREAM: https://msdn.microsoft.com/en-us/library/gg471497%28v=sql.110%29.aspx

0

Przede wszystkim pliki w bazie są o wiele bardziej wygodniejsze w użytkowaniu. Jeśli mamy pliki poza bazą to wszelkie przenosiny pomiędzy serwerami są utrudnione. Łatwo wtedy rozjechać fizyczne ścieżki ze ścieżkami zapisanymi w bazie i będzie kaszana. Z drugiej strony jeśli tak bardzo zależy nam na wydajności to obrazy można zawsze wrzucić do drugiej tabeli w której znajdują się tylko pliki, a wszelkie zestawienia czy wyświetlanie danych dla użytkownika brać z tabeli bez zdjęć. Chociaż i tak jeśli damy pole typu blob, to w tabeli nie siedzi cały obrazek, a odnośnik do innego miejsca w bazie, więc jeśli nie pobieramy obrazka, nie powinno to wpływać na wydajność.

1 użytkowników online, w tym zalogowanych: 0, gości: 1