簡體   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