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

Odpowiedz Nowy wątek
2015-01-28 19:59
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?

Pozostało 580 znaków

2015-01-29 00:02
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.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-01-29 09:11
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+

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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