Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przedziały w bazie danych
dorian
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 4.03.2006
Skąd: Poznań

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
JoShiMa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


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.


--------------------
Go to the top of the page
+Quote Post
dorian
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 4.03.2006
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post
JoShiMa
post
Post #4





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


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.


--------------------
Go to the top of the page
+Quote Post

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: 20.08.2025 - 01:38