web-dev-qa-db-fra.com

Conception de base de données pour un site de réseautage social

Quelles sont les tables qui seraient présentes sur un site de réseautage social (ex: Twitter).

J'ai une table d'utilisateurs à partir de maintenant. Comment suivre les followers et les personnes que je suis?

  • Dois-je tenir un tableau séparé pour les abonnés et les personnes que je suis?
  • Quelles sont les colonnes qui figureraient dans ces tableaux?

S'il vous plaît ne pensez pas que ce soit un sujet subjectif/désactivé. Comme je suis débutant, je pensais que les experts peuvent me guider pour obtenir une bonne conception de base de données?

32
user326638

Essayez de regarder Database Answers en particulier les modèles de données. Ils ont plusieurs conceptions différentes pour différents systèmes. Ce n est pour un site de réseautage social qui peut vous donner une idée de ce qui est requis.

Vous pouvez rechercher sur SO pour d'autres questions de base de données de réseaux sociaux. J'ai trouvé celui-ci qui avait un lien vers flickr montrant un schéma qui semble provenir de Facebook.

La conception de votre base de données sera basée sur les exigences de votre système. Sans savoir exactement ce que vous essayez de réaliser, il est difficile de vous donner le meilleur design.

39
Andy Robinson

vous pouvez utiliser ce concept de conception de base de données Messenger: Messenger DB

Messenger DB Schema

8
Sadegh-khan

Vous pouvez créer une table distincte pour les suiveurs/suivis relationships. Ainsi, lorsque x suit y, créez une entrée avec follower_id = x.id followed_id = y.id.

Vous pouvez interroger la table des relations pour rechercher tous les utilisateurs avec lesquels x a des relations par select * from relationships where follower_id = x.id ou vice versa.

Lorsque/si x ne suit pas y, il vous suffit de supprimer l'entrée que vous avez créée à l'origine.

6
user3375663