Witam, na samym początku chciałbym zaznaczyć że nie wiem czy nadałem dobry tytuł jednak nie mam innego pomysłu.
Przechodząc do rzeczy chciałbym zrobić możliwość zapraszania, dodawania etc znajomych, coś tak jak by facebook czy inne serwisy społecznościowe.
Mam jak na razie dwie tabele, tabela users, z danymi wszystkich użytkowników, jedna dla całego serwisu i tabela friends.
W tabeli friends jak na razie przechowuję id użytkownika który zaprasza do znajomych, id zapraszanego i status (0-wysłano zaproszenie, 1-zaakceptowano, 2-zablokowany etc.)
I teraz nie wiem czy powinienem rozbudować tabelę friends i przechowywać w niej imię, nazwisko i avatar użytkownika czy te dane powinny być pobierane z tabeli users. Według mnie oba założenia mają swoje plusy i minusy. W pierwszym przypadku na pewno dużo łatwiej było by mi wyświetlać znajomych, no bo potrzebne dane są już w tej tabeli. Z drugiej jednak strony należało by przechowywać dane zapraszającego i zapraszanego, poza tym jest jeszcze problem edycji danych. Jeśli jeden użytkownik zmieni swoje dane trzeba będzie je również zmieniać w tej tabeli osobno żeby zawsze były aktualne.
W przypadku drugiego rozwiązania niknie problem edycji danych bo dane wystarczy aktualizować w jednej tabeli, no i tabela friends, w przypadku tego rozwiązania, jest dość jasna, Z drugiej strony też są dodatkowe zapytania do tabeli users, jest ich nawet więcej no i też kompletnie nie wiem jak to wykonać.
Proszę o opinię które rozwiązanie jest lepsze. W przypadku drugiego jak powinny wyglądać zapytania do tabeli users po pobranie tych danych. A może żadne z tych rozwiązań nie jest dobre i powinno to wyglądać zupełni inaczej???
Z góry dzięki