-2

这是我的java面试问题之一......

有人问我,你会使用哪种数据结构来实现 Facebook 帖子、点赞和评论?

我很想听听所有成员的意见......

4

1 回答 1

0

对于数据库来说,这确实是一项更多的任务(请注意,与相比,下面的内容有多复杂(因为下面的所有内容都由具有适当索引的适当数据库处理)),但是......

注意我假设只有帖子可以被喜欢,评论是针对帖子的。

帖子:

Posts 可能是post ID 到 post object 的 Map

如果您想查看用户发布的帖子列表,您还需要一个用户 ID 到一组帖子 ID 的 Map

喜欢:

您想快速获取每个帖子的点赞数,并查看用户是否喜欢帖子,因此需要将帖子 ID 映射到喜欢它的用户的一组用户 ID。

如果您还想快速查看用户喜欢哪些内容,则需要另一种数据结构 -用户 ID 到喜欢的帖子 ID 集的映射。

注释:

评论可能是评论 ID 到评论对象的映射。连接的帖子 ID 将存储在评论对象中。

您想快速获取每个帖子的评论,因此将帖子 ID 映射到一组评论 ID

如果您还想快速查看用户发表的评论列表,则需要另一种数据结构 -用户 ID 到一组评论 ID 的 Map

于 2013-04-18T11:45:09.663 回答