Projektowanie baz danych dla portalu społecznościowego

Jakie są tabele, które byłyby obecne w serwisie społecznościowym (np.... Mam teraz tabelę użytkowników... Jak utrzymać śledzenie obserwujących i ludzi, których śledzę...

  • Czy powinienem utrzymywać osobną tabelę dla obserwujących i ludzi, których śledzę...
  • jakie kolumny byłyby w tych tabelach?

Proszę nie myśleć, że to subiektywne / Off topic... Ponieważ jestem początkującym, pomyślałem, że eksperci mogą mnie poprowadzić, aby uzyskać dobry projekt DB?

Author: Community, 2010-07-17

3 answers

Spróbuj spojrzeć na Odpowiedzi bazy danych w szczególności na modele danych. Mają kilka różnych konstrukcji dla różnych systemów. Ten jeden jest dla serwisu społecznościowego, który daje wyobrażenie o tym, co jest wymagane.

Możesz poszukać w SO innych pytań dotyczących baz danych sieci społecznościowych. Znalazłem ten, który miał link doflickr pokazujący schemat, który wydaje się być z facebook.

Twój projekt bazy danych będzie oparty na twoje wymagania systemowe. Nie wiedząc dokładnie, co próbujesz osiągnąć, trudno jest dać Ci najlepszy projekt.

 35
Author: Andy Robinson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:34

Możesz użyć tej koncepcji projektu bazy danych Messenger: Messenger DB

Messenger DB Schema

 5
Author: Sadegh-khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-29 08:46:20

Możesz utworzyć oddzielną tabelę dla follower / followed relationships. Tak więc, gdy x podąża za y, Utwórz wpis za pomocą follower_id = x.id followed_id = y.id.

Możesz odpytywać tabelę relacji, aby wyszukać wszystkich użytkowników, z którymi X ma relacje przez select * from relationships where follower_id = x.id lub odwrotnie.

Gdy / jeśli x nie podąża za y, musisz tylko usunąć wpis, który pierwotnie utworzyłeś.

 1
Author: user3375663,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-19 17:01:31