[MySql] Listy kontaktów dla użytkowników

0

Witam,

Chciałbym napisać bazę danych dla użytkownika na portalu społecznościowym. Nie mam pojęcia jak mogę zrobić w sposób efektywny listy kontaktów. Właściwie kompletnie nie wiem jak się za to zabrać. Bo tabelka typu: [nr_listy, uzytkownik] w stylu:

1, 256
1, 245
2, 256
1, 234

itd. wydaje mi się strasznie poronionym pomysłem. Inna sprawa to konieczność przechowywania wysyłanych wiadomości w trakcie czegoś na wzór czata:

to chciałem zrobić tak:

Wiadomość
[id_rozmowa, nadawca, tresc, data]
Rozmowa
[id_rozmowa, uczestnicy]

tutaj również mam problem, gdyż użytkowników może być 2, ale również np. 5.

Za jakąkolwiek pomoc będę bardzo wdzięczny.

0

Lista kontaktów:
| ID_osoby1 | ID_osoby2 |

I jeśli Jan(ID=1) ma na liście kontaktów Andrzeja(ID=2), a Andrzej Jana nie, to wstawiasz:
( 1, 2 )
Natomiast jeśli obaj mają się na listach to:
( 1, 2 )
( 2, 1 )

Informacja wydaje się być powtórzona, ale zakładając indeks na samą pierwszą kolumnę będziesz miał szybkie i wydajne wyciąganie listy kontaktów użytkownika. Dodaj sobie też UNIQUE na dwie kolumny i nie bój się tego, że ci się tabela rozrośnie w dół do niebotycznych rozmiarów. Jak będziesz miał problemy z wydajnością to wtedy będziesz się martwił, wyświetlał obrazek pana gąbki i szukał inwestorów, którzy kupią nowe serwery.

Natomiast co do rozmów, to proponuję:
Rozmowa_uczestnicy
| ID_rozmowy | ID_Uczestnika |
I dla pięciu gadających osób (ID=1,2,3,4,5) masz:
( 1, 1 )
( 1, 2 )
( 1, 3 )
( 1, 4 )
( 1, 5 )

Tylko zastanów się co będzie gdy ktoś będzie chciał dołączyć/opuścić rozmowę w trakcie jej trwania. Chyba że takie bajery nie będą ci potrzebne

0

Troche tutaj zaklamalem, co do tego serwisu spolecznosciowego. Bedzie to komunikator, ale funkcjonalnosc ktorej potrzebuja najlepiej odzwierciedlaja serwisy spolecznosciowe. Co do dolaczania osob do czata, bedzie to niemozliwe: ze wzgledu na polityke bezpieczenstwa i zastosowany protokol do uzgadniania klucza. W kazdym badz razie, dziekuje za odp. Zastanawia mnie natomiast unique... No chyba ze para ID_1 i ID_2 ma byc unikalna, to wtedy rozumiem, chociaz nie pamietam jak sie robilo unikalna pare w mysql.

Troche noobowe pytania, ale z bazami danych mialem do czynienia 2 lata temu, wiec nawet jesli warto byloby sobie odswiezyc wiedze, to jednak nie jest to w zadnym stopniu priorytet mojego projektu, a czas mnie goni.

0

Sorry, dopiero teraz doczytalem ze mowisz o unikalnej parze. Wiec zastanawia mnie tylko jak to się grupuje w mysql :) Tzn, na pewno zwyklym zapytaniem sql sie to da zrobic, ale nie pamietam jakim.

Oczywiscie moge sobie to wygooglac, wiec jesli nikt nie odpowie, to jak wroce z pracy poszukam sam tego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1