解析数据库设计:如何获取特定类别的所有帖子
Parse DB Design: How to get all the posts for particular category
我正在使用 Parse.com
创建一个讨论系统
在我的[简化]系统中,有Post
、Category
和Comment
。
如您所想,Post
可以属于一个或多个Category
,也可以有多个Comment
。
但是,用户通常希望在 Category
中看到所有 Post
。如果我这样设置我的数据库
Post (name, content, categories)
Category(name)
我担心查询 Category
中的所有 Post
会非常低效(因为它必须检查每个 [=12= 的 categories
字段].
但是,如果我像这样设计数据库
Post (name, content)
Category(name, posts)
我查询 Category
s a Post
属于什么对我来说效率很低,因为它必须搜索所有 Category
中的所有 Post
s 数组]s。
我确定这一定是一个常见的数据库设计难题,但我对此还是个新手。处理和解决此问题的最佳方法是什么?
您要查找的是 Post
和 Category
之间的 bi-directional、many-to-many 关系。使用 Parse,您至少可以采用三种方法。
- 您可以将列作为
PFRelation
添加到 Post
table。您可以向 Post
询问其 categories
关系,从中创建查询并 运行 它。相反,如果您有一个 category
,您可以在 categories
键上使用 where 子句创建一个 Post
查询。 PFRelation
如果你有大 collections 就很好 collections。
- 如果您认为关系模型更好,只需创建一个名为
CategoryPosts
的 "join" table。它将有两个指针列,一个用于 Post
,另一个用于 Category
。这样也很高效。
- 最后,您可以将数组列添加到 class。由于所有结果都是一次加载的,因此这最适合较小的 collections.
这些选项在 Parse Relations Documentation 中有更详细的描述。
我正在使用 Parse.com
创建一个讨论系统在我的[简化]系统中,有Post
、Category
和Comment
。
如您所想,Post
可以属于一个或多个Category
,也可以有多个Comment
。
但是,用户通常希望在 Category
中看到所有 Post
。如果我这样设置我的数据库
Post (name, content, categories)
Category(name)
我担心查询 Category
中的所有 Post
会非常低效(因为它必须检查每个 [=12= 的 categories
字段].
但是,如果我像这样设计数据库
Post (name, content)
Category(name, posts)
我查询 Category
s a Post
属于什么对我来说效率很低,因为它必须搜索所有 Category
中的所有 Post
s 数组]s。
我确定这一定是一个常见的数据库设计难题,但我对此还是个新手。处理和解决此问题的最佳方法是什么?
您要查找的是 Post
和 Category
之间的 bi-directional、many-to-many 关系。使用 Parse,您至少可以采用三种方法。
- 您可以将列作为
PFRelation
添加到Post
table。您可以向Post
询问其categories
关系,从中创建查询并 运行 它。相反,如果您有一个category
,您可以在categories
键上使用 where 子句创建一个Post
查询。PFRelation
如果你有大 collections 就很好 collections。 - 如果您认为关系模型更好,只需创建一个名为
CategoryPosts
的 "join" table。它将有两个指针列,一个用于Post
,另一个用于Category
。这样也很高效。 - 最后,您可以将数组列添加到 class。由于所有结果都是一次加载的,因此这最适合较小的 collections.
这些选项在 Parse Relations Documentation 中有更详细的描述。