![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 10.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Robię stronkę na której użytkownik może dodać sobie zdjęcia. Chciałbym aby mógł te zdjęcia opisać tagami (np. "drzewo", "dom", "jesień") i zastanawiam się jak to dobrze odzwierciedlić w bazie danych, aby móc później łatwo wyszukiwać zdjęcia wg. tagów.
Mój pomysł zakłada że każde zdjęcie ma 3 tagi (tak mi było łatwiej (IMG:style_emoticons/default/smile.gif) Zdjęcia *id_zdjecia nazwapliku id_tagu1 id_tagu2 id_tagu3 Tagi *id_tagu nazwa Mam tablicę Tagi gdzie każdy tag ma swoją nazwę i ID (bo wiele z nich będzie się powtarzać), a w tabeli zdjęcia zapisuję sobie same id. Zapytanie było by wtedy (pi razy drzwi): $tag = select id_tagu from tagi where nazwa like $nazwa select * from zdjecia where id_tagu1 = tag or id_tagu2 = tag or id_tagu3 = tag No i wszystko pięknie jak pierwsze wyszukanie zwróci tylko jeden wynik, bo jak więcej to troszke się to wszystko zawiłe robi. Ma ktoś pomysł jak to ładnie rozwiązać? Ten post edytował volvox 20.09.2010, 13:25:37 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Po prostu kontroluj, żeby nazwa tagu nie mogła się powtarzać (primary key) np.
Ja dodaję zdjęcie z tagiem drzewo, czyli zapis zdjęcia i nowy tag. Ty dodajesz inne zdjęcie z takim samym tagiem, to nie dodajesz kolejnego rekordu do tabeli tagi tylko pobierasz jego id (wiersza gdzie nazwa='drzewo'). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 04:59 |