0

我会做微博网络服务(对于学校,所以不要因为缺乏新想法而抨击我)并且我担心数据库可能经常超载(用户可能会关注其他用户甚至标记,所以我认为这SELECT会很重 - 检查包含所有观察标签和用户的 20 条最新消息)。

我的想法是创建另一个表,并仅在其中存储 statusID 和 userID(谁应该接收消息)。危险在于,如果某个标签或用户有很多关注者,那么该状态 ID 将会有很多记录。那么,这是个好主意吗?或者也许更好地使用 M2M 关系?(一种状态 -> 许多接收者)

4

3 回答 3

3

我认为大多数数据库都可以轻松处理大型记录集。让它预成型的责任在于您的设计是否正确设置了索引。如果您创建正确的索引,则选择子句应该会执行得非常好。

于 2009-10-31T18:36:31.503 回答
1

我会选择一个用户表,一个在用户和消息表之间建立 m2m 关系的表。

然后,您可以进行一次选择以查找用户正在关注的所有用户,然后进行第二次选择以获取所有感兴趣的消息(根据需要对结果进行排序和限制)。将此扩展到标记应该非常简单。

只要您索引正确的列,这种设计应该适用于大量用户和消息。如果你有大量的,那么你也可以将用户表和消息表运行到不同的服务器或只读复制。暂时我什至不会担心 - 你需要很大。

于 2009-10-31T18:37:50.757 回答
0

在实现 Collabinate ( http://www.collabinate.com ),一个基于服务的微博和共享活动流引擎时,我使用了图形数据库。人们创建帖子并关注其他人的事实适用于图形结构。使用正确的关系和算法,这可能是一个非常有效和高性能的解决方案。

于 2013-05-20T22:03:12.737 回答