Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przedziały w bazie danych
Forum PHP.pl > Forum > Bazy danych
dorian
Witam.
Jestem w trakcie projektowania bazy danych pod galerię internetową. Galeria jest standardowo podzielona na albumy, w których są zdjęcia. Potrzebuję trzymać informacje o autorze każdego zdjęcia. W danym albumie jest jednak najczęściej jedna lub dwie osoby, które są autorami wszystkich zdjęć. Choć zdarzają się też nieliczne przypadki gdy tych autorów jest więcej. Czy w takim przypadku warto zrobić po prostu w tabeli zdjęcia pole identyfikujące autora?

Jeżeli, dla przykładu, w albumie jest 100 zdjęć, pierwsze 50 zrobiła osoba o id 1, drugie 50 osoba o id 2 (a takich przypadków jest zdecydowana większość), to dane nie są przechowywane optymalnie pod kątem zajętości pamięci. Może da się to jakoś zgrabniej zapisać w inny, bardziej pamięciooszczędny, sposób?
JoShiMa
Cytat(dorian @ 19.08.2008, 16:00:25 ) *
Czy w takim przypadku warto zrobić po prostu w tabeli zdjęcia pole identyfikujące autora?

Jestem przekonana, że jest to bardziej uniwersalny układ. Żeby było ekonomicznie zrób tabelę autorów a przy zdjęciu trzymaj tylko id autora.
dorian
Tabela autorów to sprawa oczywista smile.gif.
Chodziło mi np o dodatkową tabelę, która zawierałaby numer albumu, id autora i pierwsze i ostatnie zdjęcie, którego jest autorem. Zaoszczędziłoby się tym samym powtarzania tego samego średnio 50 razy na album.
JoShiMa
Cytat(dorian @ 19.08.2008, 17:13:53 ) *
Chodziło mi np o dodatkową tabelę, która zawierałaby numer albumu, id autora i pierwsze i ostatnie zdjęcie, którego jest autorem. Zaoszczędziłoby się tym samym powtarzania tego samego średnio 50 razy na album.

Owszem, ale wyobraź sobie jakie kolosalne zmiany musiałbyś zrobić w strukturze, gdyby po grupie zdjęć pierwszego autora następowała grupa zdjęć drugiego a potem znów jedno zdjęcie pierwszego i kilka zdjęć drugiego?

Oczywiście możesz się bronić jakoś przed taką sytuacją, ale za bardziej bezsensowne uważam sztywne trzymanie struktury. Koszt przechowywania info o autorze w rekordzie zdjęcia jest minimalny, szczególnie, że w przypadku rozpatrywanego przez Ciebie wariantu potrzebujesz dodatkowego zapytania do bazy i oczywiście dodatkowej tabeli. Uważam, że lepiej jest przy niewielkim zwiększeniu objętości bazy i niewielkim podniesieniu kosztów wykonania zapytania zachować elastyczną strukturę. No chyba, ze koniecznie chcesz na sztywno, to w każdym katalogu rób podkatalogi autorskie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.