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