0

我有一个系统,需要将用户的操作发送给订阅这些更新的其他用户。目前用户/订阅者不多,但它可能会迅速增长,所以我想确保我做对了。就这么简单吗?

create table subscriptions (person_uuid uuid,
    subscribes_person_uuid uuid,
    primary key (person_uuid, subscribes_person_uuid)
)

我需要能够在两个方向上查找事物,即回答问题:

  • 谁是 Bob 的订阅者。
  • Bob 订阅了谁

任何想法、反馈、建议都会很有用。

4

2 回答 2

1

这两个查询代表您的模型的开始:

  1. 您希望用户成为 PK 或 PK 的一部分。

  2. 根据订阅/订阅者的基数,您可以选择:

    1. 对于低数字:使用单个表和两个sets
    2. 对于高数字:使用 2 个类似于您描述的表
于 2013-08-31T09:49:11.533 回答
0

@雅各布

您的用例看起来与 Twitter 示例非常相似,我确实在此处对其进行了建模

如果你想跟踪关系的双方,我需要一个专门的表来索引它们。

最后但同样重要的是,根据用户是否可变的事实,您可以决定非规范化(例如重复用户内容)或仅存储用户 ID,然后在单独的表中获取用户内容。

我在Achilles中实现了简单的连接功能。如果你想走这条路,看看

于 2013-08-31T19:22:23.490 回答