繁体   English   中英

向我的网站添加存档功能

[英]Adding an archiving feature to my website

我正在尝试将帖子存档添加到我的网站,并让用户有机会存档他们需要的任何帖子。 我的网站是用 MERN 和 RESTful api 构建的。

  1. 我的第一个想法是在我的帖子 model 中添加一个部分,如下所示:

{归档:{类型:Boolean,默认:假}}

用户 select 在前端“归档”,请求被发送到服务器,服务器将 model 实例/帖子切换到归档:true。 然后,所有帖子页面应该只显示未归档的帖子。 但是,我不知道它的效率如何,或者它是否是一个不错的选择。

在数据库中,这通常被称为“软删除”,许多系统都这样做——博客隐藏过时的文章,在线商店使用它来隐藏不再提供的产品,等等。 这是标准的行业惯例。

通常,您将在列出帖子时使用该字段过滤掉帖子。 此时,您必须做出重要决定:

  • 您是否完全隐藏“存档”文章并假装它们根本不存在(404)? 或者...
  • 您是否仅将它们从列表中隐藏,但仍保留_id功能的引用,以便用户的浏览器书签继续工作?
  • 或者,也许您的网站应该有一个单独的部分用于“存档”帖子,这些帖子仍然可以浏览?

一旦你决定了,你就会知道要修改哪些查询以包含额外的条件。

在性能方面,假设您的站点只有少数帖子(例如,最多 1000 个),这根本不重要 - 瓶颈通常是排序,因此请确保您拥有所有正确的索引(例如,在日期字段 - 如果有疑问,请参阅有关索引的 Mongo 文档)。

如果您将拥有大量帖子(数百万),并且存档帖子占所有帖子的很大一部分(例如,50%),那么您可以使用部分索引来加速查询 - 索引可以容纳仅非归档帖子,将归档帖子从索引中抛出以节省索引大小(遍历时间 + RAM)。 不过,不要过早地担心这一点——在大多数网站上可能永远不需要这样的优化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM