Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zarządzanie zdjęciami w bazie - kilka pytań
nowy_pehapowiec
post
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 0
Dołączył: 24.08.2009

Ostrzeżenie: (0%)
-----


Cześć

Jak najlepiej zarządzać zdjęciami w bazie danych? Powiedzmy, że chodzi o sklep, w którym są produkty poukładane w różnych kategoriach. Każdy produkt może mieć zdjęcia (albo ulotki pdf). Oczywiście produkt ma też opis, nazwę. Jak zaprojektować taką bazę w której każdy produkt może mieć różną liczbę zdjęć? Wymyśliłem sobie takie proste rozwiązanie

tabela zdjecia
PRODUCT_ID | FOTO_NAME

i jeśli produkt ma kilka zdjęć to kilka razy pojawi się jego id w tej tabeli ale różne będą nazwy zdjęć. Jest jeszcze sprawa kolejności zdjęć. Jedyne na co wpadłem to dodatkowa kolumna ORDER. Pobierałbym nazwę zdjęć dla danego PRODUCT_ID i sortował według kolumny ORDER. Ale może macie jakiś lepszy pomysł?

I na koniec, czy zdjęcia trzymać w folderze danego produktu, czy jakoś inaczej to poukładać? Teraz mam folder BASE/XXXX i każdy produkt ma swój własny folder (taki jak PRODUCT_ID). Tylko, że jeśli produkty mają takie samo zdjęcie to musiałbym je mieć powtórzone w każdym folderze - spory minus.

Jak to rozplanować, żeby było lepiej.

pozdro

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Odnośnie języka to najlepiej w oddzielnych katalogach pl, en itd. Najłatwiej się później tym operuje, bo po prostu dostawiasz do ścieżki $lang.

Sprawa wydajności listowania katalogów z tysiącami plików.
Na pewno będzie szybciej jeśli tych plików będzie mniej. Ale też, jeśli będzie bardzo dużo katalogów to się w rezultacie sprowadzi do tego samego - listowania dużej ilości, z tym, że katalogów.

Opcja 1. Katalog na każdy produkt, a w nim wszystko wrzucone jak leci (oznaczenie języka przez postfiks: opis_pl.pdf)
Opcja 2. Katalogi językowe /pl /en, a w nich katalogi na produkty, dalej jw
Opcja 3. Katalogi językowe jw, w nich katalogi na poszczególne rodzaje danych (pliki pdf, pliki doc, zjecia etc)

Każda z tych opcji powoduje, że na którymś etapie będzie albo dużo plików w katalogu, albo dużo katalogów.

No i tak dochodzimy do pomysłu (IMHO) najbardziej optymalnego. Podział katalogów w jakiś bardziej ogólny sposób (wg daty dodania, liter alfabetu) tak, aby dało się to podzielić na niezbyt duże (pod względem zawartości elementów) grupy.

Wybór zależy od kilku czynników:
- produkty dodawane stale, coraz nowsze
- produkty dodane raz, na początku, następnie tylko kosmetyczne zmiany, lub niewielka ilość nowych
- produkty, których nazwy są różnorodne, dają w miarę równomierny rozkład alfabetyczny

Analizując powyższe łatwiej jest się zdecydować na formę przechowywania. I tu, jako, że już i tak sporo napisałem, pozwolę sobie na własną opinię:
1. Nazwy różnorodne - wtedy podział na litery alfabetu czyli:
Kod
-/pl
-- /a
--- asus_adfadadfasadf.jpg
--- ati_adfasdfasdasf.jpg
-- /b
--- benq_adfadads.jpg


2. Nazwy jakkolwiek, dużo na literę A, prawie brak na R - katalogowanie na podstawie daty dodania
Kod
-/pl
--/2008
---/12
---- asus_adfadadfasadf.jpg
---- benq_adfadads.jpg
--/2009
---/01
---- benq_aasfawrwerwdfadads.jpg
---- ati_aasfawrwerwdfadads.jpg
---/02
---- benq_aasfawrwerwdfadads.jpg
---- ati_aasfawrwerwdfadads.jpg


Każdy produkt kiedyś tam został dodany. Dobrze mieć datę dodania w bazie, i na jej podstawie określamy położenie plików: /pl/2009/01/img/md5_z_nazwyproduktu.jpg
BTW. Dodatkowo można zastosować podział na rodzaj pliku (pdf, doc, img etc).

Dzięki temu nie będziemy mieli w jednym katalogu np 2k plików, ani nie będziemy mieli 2k katalogów. Podział będzie logiczny, tak, że nawet nie znając algorytmu można będzie z palca coś odnaleźć.

Pozdrawiam (IMG:style_emoticons/default/smile.gif)

Ten post edytował vokiel 15.09.2009, 18:08:09
Go to the top of the page
+Quote Post

Posty w temacie
- nowy_pehapowiec   zarządzanie zdjęciami w bazie - kilka pytań   14.09.2009, 12:03:33
- - vokiel   Tworzysz tabelę zdjęć: ID | NAZWA | URL | czy coko...   14.09.2009, 12:22:58
- - nowy_pehapowiec   vokiel no właśnie o czymś takim myślałem. 1 tabel...   15.09.2009, 09:25:33
- - fly474   Hej Widzę 2 rozwiązania: Umieszczenie plików dla ...   15.09.2009, 10:28:11
- - nowy_pehapowiec   Z doklejaniem nazw do plików wolę uważać, żeby nie...   15.09.2009, 15:54:13
- - vokiel   Odnośnie języka to najlepiej w oddzielnych katalog...   15.09.2009, 18:07:08
- - nowy_pehapowiec   vokiel bardzo dziękuję za wyczerpującą odpowiedź. ...   16.09.2009, 09:33:27
- - vokiel   Ad. 1 Najlepiej to sprawdzić, porównać sobie czas ...   16.09.2009, 09:51:14
- - nowy_pehapowiec   vokiel wiem, że jest późno i mogę bredzić ale czy ...   17.09.2009, 23:17:23
- - vokiel   Uciekające kurczaki? Chyba nie, zresztą już nie pa...   18.09.2009, 09:19:59
- - nowy_pehapowiec   o właśnie o uciekających kurczakach myślałem 4 I...   18.09.2009, 12:36:44
- - vokiel   Grillowane udko - z chęcią mam parę browarków pod ...   18.09.2009, 21:03:23
- - nowy_pehapowiec   vokiel jeszcze 3 pytanka mam do ciebie, jeśli możn...   19.09.2009, 16:36:03
- - vokiel   Tylko 3? 1. Tabela kategorii (id, nazwa, etc) ...   20.09.2009, 11:27:04
- - nowy_pehapowiec   Sorry przepraszam za te pytania ale widzę, że znas...   20.09.2009, 15:05:13
- - vokiel   Widzę, że się rozkręciłeś Klucz główny zakładasz...   20.09.2009, 15:42:07
- - nowy_pehapowiec   No się rozkręciłem 1 Właśnie nie wiem jak założy...   20.09.2009, 18:20:21
- - vokiel   Ad. 1. [SQL] pobierz, plaintext DROP TABLE IF EXIS...   21.09.2009, 07:44:12
- - thek   Ja osobiście staram unikać myślnika z prostej przy...   21.09.2009, 10:58:44
- - nowy_pehapowiec   ad 1 już wiem ad 2 po namyśle zostaje przy swo...   21.09.2009, 12:23:27
- - vokiel   Ad. ad 3. Co do opisów produktów dodaj może sobie ...   21.09.2009, 13:21:15
- - nowy_pehapowiec   Ale one chyba nie zapewniają nawet podstawowych fu...   22.09.2009, 20:18:03


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 02:30