witam, pytanie jak w temacie,
baza danych jest w sql.
jeśli można to jaki typ danych należy użyć
blob
PS. sql to nie baza danych.
ok, wielkie dzieki
ile obrazków, jaka przewidywana wielkość, gdzie je potem potrzebujesz, itd, itp... Szczegóły panie, szczegóły!
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
Nie lepiej w plikach przechowywac?
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ł??
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).
ok, dzieki. Tak wlasnie zrobie
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
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?
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
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".
@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.