【发布时间】:2018-06-20 21:30:51
【问题描述】:
我正在做一个项目,希望在这个项目中数据库会增长,我正在犹豫如何设计一个 cmets 系统。我正在使用粗略估算来进行计划,达到 10% 的目标会很棒,但如果事情开始增长,我想做好准备。
我想在自定义片段内的小部件上实现用户 cmets。每件大约有数百个这样的小部件,每个小部件可能有数百个 cmets,并且将有数千个。非管理员用户将无法编辑片段或小部件,只能编辑 cmets。
我认为的替代方案是:
- 评论作为小部件,在主要部分中:不需要进行自定义查询来加载页面上的 cmets 会非常好,但这可能会非常缓慢和繁重,编辑该部分会至少使用 chrome 是不可能的(想象一下编辑器模式加载 500 个小部件,每个小部件有 200 个 cmets.. 100,000 个 cmets 一次加载!),并且很难在所有部分和小部件中搜索 cmets。
- 评论作为一个片段,使用 _id 字段关联到主片段:更好,因为可以使用过滤器逐个调节 cmets,并在用户单击小部件时加载它们,使用 ajax、分页等。但是,它不会挤满 aposDocs 集合并影响其他片段吗?例如,10,000 个主片段和每个 100,000 cmets-pieces = 100,000 cmets-pieces。如果每条评论有 5kB,那么总大小约为 4,66TB,这对 mongo 来说还可以,但是 Apostrophe 可以吗?我可以去吗?
- 其他收藏中的评论:会更有条理,不会影响其他作品,但我会失去用撇号,cmets 的富文本本地管理 cmets 的能力......这非常可悲。 是否有一种简单的方法可以创建一个将 cmets 存储在另一个集合中的片段(例如 cmetsDoc),同时保留撇号功能?
哪个最好?还有其他方法吗?还有其他重要的事情需要考虑吗?
【问题讨论】:
标签: apostrophe-cms