我想构建像facebook一样的应用程序(实际上与facebook无关,但是对于我们可以这么说的问题的性质)。
我目前有一个名为Post
的表和另一个名为Comment
的表,当然我代表他们之间的一对多关系(我阅读了文档here但是没有#t}对我很有帮助)。
在注释中,我创建了一个列,其中包含指向具有父Post的Post类的指针
在Post中我创建了一个带有Array的列,其中将存储相关注释的id
(每个帖子的评论数量都不会很高,在10到100之间)。
这里使用的技术是最好的?还有更有效的方法吗?
答案 0 :(得分:1)
如果你的数组只存储了注释的objectID,那么使用Relation
作为列类型而不是Array
可能更惯用。
Relation
效率更高,因为在检索Post对象时不会返回ID,因此Post对象传输速度会更快,并且与将对象ID存储在Array中的缺点相同您仍然需要运行查询来获取Comment对象。我能看到的唯一可能的缺点是,如果你需要有多少条评论,你可以根据数组的大小来计算,但是使用Relation
你必须运行一个计数查询(或者维持一个单独的计数字段。)
使用Array
,您也会引入轻微的数据维护/完整性开销。如果您的用户能够删除注释,那么您还需要从阵列中删除注释ID。这将需要一个允许的ACL(允许评论者编辑他们可能没有创建的帖子,因此他们将能够编辑帖子中的任何值),或者你必须拥有一个/保存操作后,在删除注释时更新帖子。