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

Jeśli słabo opisałem problem proszę wyrozumiałość i ewentualnie pytania.