![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 02:30 |