【发布时间】:2016-07-08 11:12:07
【问题描述】:
我的网络应用程序需要始终查询 2 度连接。每个用户有 200 个朋友,这些朋友每个有 200 个朋友。我可以使用一些帮助来确定正确的数据库(和表结构),以使这个 Web 应用程序快速响应。
业务逻辑:用户搜索他们的 1 级和 2 级连接以获得使用特定服务的其他用户的列表(以 unsigned int 的形式存储在一列中)。这是此应用的唯一功能。
表结构:
- 用户表:User_ID (pk)、Facebook_ID (sk)、姓名、特定服务、位置
- 关系表:仍未确定。
问题:我阅读了很多帖子并在网上搜索“社交网络数据库设计”。但是,这些应用程序与我的感觉有很大不同。我将有很多用户(+10 百万),但只有一个小型数据库,并且只运行一个查询,如业务逻辑中所述。
其他信息:用户只能使用他们的 Facebook 帐户注册(并随后登录)。他们的朋友将被邀请(通过 Facebook)也注册。 关系表将在朋友注册后填充(仅限活动/未阻止/未挂起的朋友)。因此,我可以从 Relationship Table 中删除“友谊状态”列。
【问题讨论】:
标签: mysql facebook-graph-api database-schema social-networking database-performance