![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 1.11.2009 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Witam jak dodać obrazek w bazie danych chodzi mi o to że powiedzmy jest opis produktu i chciałbym przypisać do niego obraz
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Do tego będzie Ci potrzebny typ danych BLOB. Tutaj daję tutorial który znalazłem na poczekaniu - omawia sprawę dość dobrze. PS: Na twoim miejscu zrezygnował bym z przechowywania obrazów w bazie danych... no chyba ze naprawdę masz ku temu powody. Pozdrawiam! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Matey:: nie demonizujmy.
nie zawsze przechowywanie obrazkow jest zlym pomyslem. jesli przykladowo chcesz przetrzymywac tam avatary dla uzytkownikow forum - jest to dobry pomysl. zly - jesli chcesz tak potraktowac galerie obrazow. maksyma z fajnej ksiazki - zasoby poza bazą danych nie są zarządzane przez tę bazę trzeba zostawic uprzedzenia na boku, i kazdy projekt analizowac osobno. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 23.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Opisu realiów nie było więc tak jak powiedziałem "...no chyba ze naprawdę masz ku temu powody".
Pozdrawiam Ten post edytował Matey 26.05.2012, 07:15:16 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 12 Dołączył: 31.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ogólna zasada zapisywania plików w bazie jest taka że:
- pliki do 1 MB trzymamy w bazie - pliki powyżej 1 Mb trzymamy w katalogu a w bazie tylko ścieżkę do pliku. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@trafas: Jakieś uzasadnienie dla tej zasady?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 12 Dołączył: 31.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Większość książek tak podaje.
Chodzi o rozkładanie plików na dysku. Mniejsze pliki lepiej są przechowywane w bazie ( chodzi o wypelnienie stron ). Przy większych plikach są większe straty miejsca, a co za tym idzie więcej operacji odczytu z dysku. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cągle te pomysły by pliki trzymać w bazie (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)
A co ze względami praktycznymi? Moim zdaniem uploadowane pliki powinny trafiać do bezpiecznego folderu ze względu na: - wydajność (o ile rozmiar tabeli wzrośnie jak nawsadzasz tam obrazków? Masz powiedzmy 100 tys. userów, każdemu daj 50 kb avatar to o ile wzrośnie waga tabeli? A robienie zrzutu tabeli czy całej bazy? Nawet samo przeglądanie trwa dużo dłużej.) - bezpieczeństwo - praktyczność (jak będziesz przeglądał te pliki, obrabiał, wyświetlał listę plików itp.? Chcesz np. pobrać komplet informacji o pliku - w bazie to wszystko będziesz zapisywał? A co z przygotowaniem plików w kilku rozmiarach i ewentualnych zmianach tych rozmiarów?) Cytat jest opis produktu i chciałbym przypisać do niego obraz - PHP już daje rozwiązanie, generując znormalnizowaną nazwę pliku. Zapisujesz w bazie tą nazwę a plik w bezpiecznym folderze, potem pozostaje napisać prostą akcję która po odpaleniu adresu typu strona.pl/plik.php?name=Ac4rq zwróci plik headerem z nagłówkiem odpowiadającym jego typowi.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
@trafas: Jakieś uzasadnienie dla tej zasady? Mam CRM magazynujący skany podpisanych umów z klientami. Po roku działania baza ma rozmiar 200M z czego tabela z plikami 185M W moim mniemaniu to jest wystarczający powód aby unikać przechowywania plików w bazie, chociaż w wielu przypadkach nie musi to być złym rozwiązaniem. Do limitu 1M należy podchodzić bardzo elastycznie. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@trafas: Generalnie dane binarne (np. obrazy) można trzymać w bazie danych, ale nie jest to dla nich naturalne miejsce (RDBMS-y dobrze pracują ze znormalizowanymi danymi, a pliki do takich nie należą). Byłbym daleki od stwierdzenia, że dla plików o wadze do 1 MiB baza danych jest dobrym miejscem ich składowania.
Odczyt danych z bazy może być szybszy od odczytu z systemu plików, ale w starciu z poprawnie skonfigurowanym i zarządzanym system plików jest praktycznie bez realnych szans. Chyba, że miałeś na myśli sytuację, gdzie dane binarne w bazie danych są fizycznie przechowywane poza nią (w systemie plików), a baza tworzy jedynie transparentny pomost pomiędzy tymi dwoma źródłami danych. Wtedy wyniki mogą być porównywalne. Baza danych ma swoje zalety (przykładowo łatwość w utrzymaniu transakcji), ale do przechowywania plików nie została zaprojektowana => nie najlepiej się z nią w tym zakresie pracuje. Ten post edytował Crozin 5.06.2012, 16:36:05 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 12 Dołączył: 31.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja uważam że zdecydowanie lepiej jest trzymać pliki w systemie plików niż w bazie.
Tak jak pisałem jest to ogólna zasada a nie wymóg. Trzeba brać jeszcze pod uwagę np. do czego będzie wykorzystywana baza, jak często dane binarne byłyby odczytywane i jeszcze parę innych rzeczy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 02:10 |