Jaki użyć typ do przechowywania obrazków w bazie?

0

Witam, w jednym z przykładów(dodawanie obrazków dla produktów) jaki miałem okazje przestudiować został użyty typ varbinary(MAX) do przechowywania wartości zdjęcia. Szkoda tylko, że nie zostało to w jakikolwiek sposób wyjaśnione, dlaczego taki a nie inny typ. Dlatego chciałbym zapytać was o zdanie z jakich typów korzystacie? A druga kwestia, dlaczego zdjęcie jest przechowywane w bazie danych a nie w folderze(image) servera? Jakie są z tego korzyści?

1
Rejencina napisał(a):

Witam, w jednym z przykładów(dodawanie obrazków dla produktów) jaki miałem okazje przestudiować został użyty typ varbinary(MAX) do przechowywania wartości zdjęcia. Szkoda tylko, że nie zostało to w jakikolwiek sposób wyjaśnione, dlaczego taki a nie inny typ. Dlatego chciałbym zapytać was o zdanie z jakich typów korzystacie?

Tu raczej nie ma innego wyboru. Bo niby jaki?

A druga kwestia, dlaczego zdjęcie jest przechowywane w bazie danych a nie w folderze(image) servera? Jakie są z tego korzyści?

Zaletą jest chyba to, że robiąc backup całej bazy zrobi się też backup grafik. Poza tym, ponoć dla obrazków mniejszych niż 1 MB jest to ponoć wydajniejsze. No i łatwiej też to zaimplementować, bo nie trzeba mapować danych z bazy na nazwy plików, itp.
Można też użyć Filestream, wtedy serwer sam trzyma dane typu varbinary(max) w systemie plików.

0
Rejencina napisał(a)

A druga kwestia, dlaczego zdjęcie jest przechowywane w bazie danych a nie w folderze(image) servera? Jakie są z tego korzyści?

Poza wspomnianym przez @somekind backupem dochodzą jeszcze kwestie z zachowaniem spójności danych. Jeżeli zapisujesz plik na dysku w osobnym katalogu to musisz w jakiś sposób samodzielnie obsłużyć sytuację kiedy któryś z elementów nie zadziała

  • nie poszedł SQL - musisz skasować plik
  • nie udało się zapisać pliku - musisz KOLEJNYM SQL-em wycofać dane z bazy.
    Generalnie problem transakcji rozproszonych.

Co do typów to w MS SQL jest coś co się nazywa filestream(https://msdn.microsoft.com/en-us/library/gg471497.aspx ) i generalnie zostało wymyślone do składowania plików 1MB+

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