Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rozbudowany system tagów
Forum PHP.pl > Forum > Bazy danych > MySQL
billy235
Witajcie.
Wiem, że problem znany i lubiany, ale trochę ciężko mi było znaleźć to o czym myślę.

Otóż chciałbym zrobić serwis internetowy, w którym będą tagi.

Po pierwsze będą proste tagowania np. hobby, nazwy zwierząt, nazwy kwiatów, miejscowości, umiejętności użytkowników i jeszcze kilka.
Tutaj wydaje się być to prosta sprawa czyli np. tab_hobby - tab_hobby_laczenie_uzytkownik - tab_uzytkownik (łączenia przez id) i tak podobnie do innych.

Zastanawiam się też nad tagowaniem tabel łączących hobby i użytkownika.
użytkownik posiada pewne hobby i chciałby je opisać słowami kluczowym. np. wędkarstwo: ryby, wędka, wędkowanie, łowienie, jezioro białe, glinki
Zauważmy, że są to jego prywatne słowa kluczowe i nie koniecznie tyczą się one do samego wędkowania, ale też miejsc gdzie on sam to robi.

zaprojektowałem tabele: tab_hobby , tab_hobby_laczenie_uzytkownik , tab_hobby_laczenie_uzytkownik__laczenie_slowa , tab_slowa

Jak widać sporo tabel, niema powtarzanie danych, ale zapytanie będą bardzo długie bo żeby np. znaleść użytkownika, który jako słowa kluczowe do hobby wpisał konkretną rzecz i do tego wyświetlić inne informacje o użytkowniku to trzeba konstruować długaśne zapytania przechodzące przez wiele tabel łączących.

Pytanie: czy to jest dobre podejście do problemu questionmark.gif czy takie rozwiązanie przyśpieszy zapytania czy lepiej tak długich zapytań nie konstruować i uprościć system.


Jeśli słabo opisałem problem proszę wyrozumiałość i ewentualnie pytania.
erix
A nie lepiej dać dodatkową kolumnę w tabeli łączącej relację N-N i tylko potem filtrować przez WHERE w całym zapytaniu?
billy235
nie zrozumiem za bardzo.
Co miała by ta kolumna przechowywać.

Może ja przedstawię uproszczoną strukturę tabel w chodzącą w skład tego zagadnienia z tagowaniem tagowania smile.gif bo trochę niejasno się wyraziłem wcześniej

Tutaj jest: Diagam
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.