
próbuję zrobić serwis z linkami podobny do del.icio.us (w frameworku symfony), i zastanawiam się jaką bazę danych stworzyć aby serwis działała wydajnie przy dużej liczbie użytkowników.
Na początek myślę o 5 tabelach
bookmarks
id
id_link
id_user
id_tags (tagi adresu, czyli np :1:2:3:4: - to id tagów z tabeli tags)
etykieta
opis
wizyty
tags
id
tag_name
visits
link
id
url
user
id
name
tags (tagi użytkownika, czyli np :1:2:3:4: - to id tagów z tabeli tags)
ogólnie jest tak że wszystkie linki są w tabeli linki żeby nie powielać jak 1000 osób wpisze onet.pl, podobnie z tabelą tags
nie wiem czy tak będzie wydajnie, czy może inaczej to zaprojektować ?
bo na przykład jak wykonam tag_cloud dla konkretnego użytkownika
to trzeba pobrać z tabeli user jego tagi(id), rozdzielić funkcją explode() i wyciągać nazwy z tabeli tags i baza nie rośnie tak szybko.
Czy może lepie dodać jeszcze jedną tabelę i w niej każdy tag danego użytkownika przechowywać w osobnym rekordzie i póxniej JOIN'a robić żeby wyciągnąć nazwy tagów
Proszę o sugestie ...