Czy mozna w bazie danych przechowywac obrazki??

0

witam, pytanie jak w temacie,
baza danych jest w sql.
jeśli można to jaki typ danych należy użyć

0

blob

PS. sql to nie baza danych.

0

ok, wielkie dzieki

0

ile obrazków, jaka przewidywana wielkość, gdzie je potem potrzebujesz, itd, itp... Szczegóły panie, szczegóły!

0
Misiekd napisał(a)

ile obrazków, jaka przewidywana wielkość, gdzie je potem potrzebujesz, itd, itp... Szczegóły panie, szczegóły!

obrazków w bazie około 50
wielkość każdego to około 10KB
potrzebuje do wyświetlenia na stronie

0

Nie lepiej w plikach przechowywac?

0

no, można by w plikach.
chodzi mi o
mam tabele opis_towaru i w niej chciałem tzrymać zdjęcie, zeby pozniej na stronie wyświetlać za pomocą
zapytania wszystko z tej tabeli.
Myślicie, że to zły pomysł??

0

Operowanie na plikach jest zwykle duzo latwiejsze, stad wrzucajac obrazki do bazy utrudniasz sobie zycie. Jesli nie masz jakichs przeciwskazan przeciwko plikom, to latwiej bedzie na plikach. W bazie mozesz przechowywac sciezke do pliku, badz mozesz nazywac pliki tak jak unikalne id_towaru, np. 15.jpg, czy 15_small.jpg (miniaturka).

0

ok, dzieki. Tak wlasnie zrobie

0

Operowanie na obrazkach z bazy ma te zalety, że obrazki są dużo trudniej do "ukradzenia" + dochodzą wszystkie mechanizmy bazodanowe - przechowywanie historii, zabezpieczenia itp...

pozdrawiaMM

0

To samo dokladnie mozna zrobic z plikami, wiec nie wiem, gdzie tu ulatwienie...

PS. 'dochodza wszystkie mechanizmy bazodanowe' - czyli co tak konkretnie?
PS2. Jak wyswietlisz obrazek (a takie jest zalozenie) to jak masz zamiar go zabezpieczyc przed kradzieza?

0
johny_bravo napisał(a)

'dochodza wszystkie mechanizmy bazodanowe' - czyli co tak konkretnie?
np. triggery + inwencja twórcza
historia - w bazie może być przechowywane kilka kopii tego samego obrazka np. z wyszczególnieniem od kiedy do kiedy dana kopia obowiązywała. Wprawdzie na plikach też to mozna zrobić, ale już nie tak łatwo...

johny_bravo napisał(a)

Jak wyswietlisz obrazek (a takie jest zalozenie) to jak masz zamiar go zabezpieczyc przed kradzieza?

Np. wyświetlanie z innych stron (nie pamiętam jak to się nazywa - na stronie www.xxx.net jest wyświetlany obrazek z www.yyy.net) - to też można zabezpieczyć, ale nie na wszystkich serwerach (zwłaszcza na tych, których właścicielem się nie jest). Obrazek z bazy najpierw musisz 'zmaterializować', aby móc go pokazać. Czasem robi się to bezpośrednio na kliencie (bodajże w PHP są takie funkcje), więc kopie plików fizycznie nie istnieją na serwerze.
No i oczywiście same zabezpieczenia bazodanowe dla różnych użytkowników. Jednym pokazywać innym nie.

pozdrawiaMM

0
Marcin.Miga napisał(a)

Obrazek z bazy najpierw musisz 'zmaterializować', aby móc go pokazać. Czasem robi się to bezpośrednio na kliencie (bodajże w PHP są takie funkcje), więc kopie plików fizycznie nie istnieją na serwerze.

No dobra, ale jak już widzę ten obrazek w przeglądarce, to niby kto mnie może powstrzymać przed "ukradzeniem" go i jak?

P.S. M$ w swoim SQL Server zrobił nawet oddzielny typ danych "image".

0

@Marcin.Miga: rozumiem Twoj tok myslenia, ale w tym wypadku wydaje sie to byc armata na muche.

To co opisujesz mozna bardzo latwo zrealizowac wrzucajac pliki w katalog niedostepny w zwykly sposob. Powiazanie obrazka z wpisem w bazie (poprzez id na przyklad) daje Ci dostep do wszelkich mechanizmow bazy (sortowanie, wyszukiwanie, itp) bez zbednego obciazania bazy kilobajtami danych. A wyswietlanie obrazka dla autoryzowanych uzytkownikow w tym przypadku to pestka.
Historia rowniez nie jest problemem, przeciez to tylko kolejny wpis w bazie.

Osobiscie nie przepadam za przechowywaniem plikow w bazie, bo 'materializacja' ich (jak to nazwales) to dodatkowe linie kodu, a zysk zaden.

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