社交网站的数据库设计

33 database database-design social-networking

什么是社交网站中的表格(例如:推特)....我现在有一个用户表...如何跟踪追随者和我关注的人...

  • 我应该为追随者和我跟随的人保持单独的桌子......
  • 这些表格中的列数是多少?

请不要认为这是主观/偏离主题...因为我是初学者,我认为专家可以指导我获得一个良好的数据库设计?

And*_*son 41

试着看一下Database Answers,特别是数据模型.它们针对各种系统有几种不同的设计.这一个是一个社交网站,其中我给你真实需要什么样的想法.

您可能希望在SO上搜索其他社交网络数据库问题.我发现这个flickr的链接显示了一个看似来自facebook的架构.

您的数据库设计将基于您的系统要求.如果不确切知道你想要实现什么,很难给你最好的设计.

  • 到目前为止,前两个链接已失效。 (2认同)

Sad*_*han 8

您可以使用此Messenger数据库设计概念:Messenger DB

Messenger DB Schema

  • 密码 varchar(40) 看起来像 SHA1 - 现在 bcrypt 需要 60 个字节。加上姓氏的 varchar(20) 相当小。我有一个朋友,他的姓氏至少有 30 个字符。 (2认同)

use*_*663 6

您可以为follower / followed创建一个单独的表relationships。因此,当x跟随y时,请创建一个条目follower_id = x.id followed_id = y.id

您可以查询关系表以查找x与by有关系的所有用户,select * from relationships where follower_id = x.id反之亦然。

当/如果x取消跟随y,则只需删除最初创建的条目。