我目前正在学习很多关于MEAN堆栈和显然是MongoDB的知识。我想设置我的数据库,以便不会“删除”任何东西,只会将事物标记为已删除或移动到其他位置,例如存档的集合/数据库。这样做的行业标准方法是什么?
我看待它的方式是我有两种选择,都提出了更多问题:
使用已删除的密钥将文档标记为已删除。
我会将此存储为带有附加时间戳数组的时间戳吗?我需要这个数组,因为我还希望创建一个“恢复”功能,这意味着它可以被多次删除,我想跟踪它。这意味着我必须更新我的许多查询以忽略该密钥。
将文档移动到另一个集合或数据库。
这需要最多的工作,因为我需要处理引用该文档的任何其他功能。例如,从影院数据库中删除用户,这是否意味着我还必须存档以前的预订,或者只是更新查询以便在档案中搜索?
我找不到任何有用的资源,但是如果你们知道任何有用的话请指点我那个方向:)谢谢。
答案 0 :(得分:0)
谢谢hector!他的回答:
“实际上,没有一种”标准“的方法可以做到这一点。每家公司都以自己的方式完成。对于你的第一个选项,你不需要存储一个时间戳数组,而只需要一个标志,表明该文件是“删除”。然后,在另一个集合中,您可以存储事件。例如:{event:“deleted”,date:“03/08/2017 08:00:00”,documentId:“7726”}事件存储是要走的路“