【发布时间】:2014-10-30 14:15:37
【问题描述】:
我正在努力为应用寻找最佳的数据库设计。我有 SQL 背景,倾向于创建或多或少非规范化的数据库设计。
我有以下问题。我有一个包含大约 2000 篇文章的“文章”集合。每篇文章都有相当多的信息。实施推荐系统,我想为每个“文章”与每个“用户”关联一个“PredictedRating”。 在 SQL 中,我将使用三个表对此进行建模:“Articles”、“Users”、“UserToArticle”。 查询应如下所示:我想为每个“文章”关联当前登录用户的“PredictedRating”。在 SQL 中,我将在“文章”和“用户”上进行连接,预先选择相应的用户。 拥有正确的索引是非常快的。
我怎样才能以 mongo 的方式实现呢?当我以所描述的方式实现这一点时,我不得不为每篇文章放置一个 findOne() 查询,这非常低效且缓慢(即使使用索引也是如此)。
你有什么想法吗?重要的是,仅发布当前用户的预测评分。
【问题讨论】:
-
不清楚你需要什么样的查询。例如,一位用户的所有评分或一篇文章的所有评分或两者兼而有之?
-
好点:我需要一个用户的所有评分。