Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Struktura bazy danych dla zdjęć używanych w wielu tabelach
Forum PHP.pl > Forum > Bazy danych > MySQL
Ultear
Witam,

Ostatnie dni zastanawiam się nad najlepszą strukturą bazy danych dla zdjęć używanych w postach, newsach oraz jako avatary użytkowników.
Zastanawiam się czy najlepiej jest stworzyć jedną tabelę dla zdjęć i do każdej tabeli używającej zdjęć dołączyć tabele łączącą, czy też np. same avatary przechowywać w tabeli użytkownika?

Powiedzmy, że każdy post i news ma okładkę i parę zdjęć. W jaki sposób zaprojektować strukturę bazy danych pod takie coś?

Zastanawiam się nad tym tematem, ponieważ chcę zrobić coś w stylu wyszukiwania zdjęć po tagu podczas dodawania, aby móc użyć już istniejących zdjęć podczas dodawania wpisu.

Kolejnym pytaniem jest - jak przechowywać ścieżki do poszczególnych obrazków w przypadku jednej tabeli dla wszystkich zdjęć? Powinny one się znajdować w tabeli, czy też raczej na sztywno w kodzie? Podejrzewam, że druga opcja jest tą poprawną, ponieważ jeżeli zajdzie potrzeba zmiany ścieżki, to w kodzie zmienię ścieżkę w jednym miejscu, ale mogę się mylić, więc proszę o sprostowanie.

Struktura, którą obecnie wymyśliłem:

photos

id
src


user
...
avatar_id (foreign key)

posts_photos
post_id (fk)
photo_id (fk)

news_photos
news_id (fk)
photo_id (fk)

photos_tags
tag_id(fk)
photo_id (fk)

tags
id
tag

Może ktoś wpadnie na jakieś lepsze rozwiązanie? Proszę o wyrażenie opinii na temat mojej struktury
Pyton_000
avatary w profilu usera. No chyba że też będziesz chciał przeszukiwać je.


Co do zdjęć to zrobiłbym 1 tabelę na przechowywanie fotek ze ścieżką relatywną do jakiegoś tam katalogu na dysku (w kodzie dopełnienie tej ścieżki)
Kolejna tabela na tagi do fotek
i kolejna tabela na złączenia. Wystarczy 1, bo będziesz sobie pchał photo_id, type(news,post etc.), type_id (id konkretnego wpisu)


Nie ma sensu rozwalanie tego na większe ilości tabel, no chyba że przewidujesz miliony wpisów i obrazów to wtedy można pomyśleć smile.gif
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.