MongoDB默认项目,用户覆盖

时间:2017-08-21 10:23:36

标签: mongodb collections database

所以这个问题看起来非常简单,但是我处理解决方案的方式似乎都是一个糟糕的实现方法,无论是重复的内容还是混乱的数据。

问题

我想在“默认”项目上为每个用户提供“覆盖”选项。基本上我有一个mongodb数据库,其中包含一个包含以下信息的项目的集合:

  • ID
  • 名称
  • 图标
  • 描述

此集合中有一组20-30个项目,每个用户使用应用程序视图。

大多数用户都会很高兴看到默认设置,但如果用户希望更改项目或名称的图标,那么我该如何处理“默认”项目中的“覆盖”仅针对该单个用户。 / p>

可能的解决方案

我的想法是实现以下选项之一,但所有看起来都有点不对(我提供了我的想法):

  • 为每个“覆盖”项目添加一个重复的项目与更改和一个user_id字段链接用户 - 这似乎是一些重复的内容,因为用户可能只更改图标而不是名称/描述。此外,如果名称在默认项目中未来更改,您如何处理此问题,以及您如何理解此项目必须替换该用户的“默认值”之一。我担心在查找项目然后替换更改的项目
  • 时,这也会有一点性能问题
  • 在同一个集合中将每个用户复制的所有项目 - 非常多的内容重复,但可能是性能最佳的选项,但如果需要添加新的“默认”项目或默认选项需要更改,则可能导致将来出现问题/ LI>
  • 每个用户的收集 - 与之前相同。这个选项似乎有各种各样的错误,但也许我只是新手,它实际上是最好的选择。
  • 包含覆盖的集合 - 这似乎是一个好主意,但同样是一个糟糕的因为查找和比较。如果一切都改变了,那么为什么不只是拥有所有新项目而不是有效地找到替代品。

想要做到这一点的原因

也许我在想这个,但似乎我会经常面对这个问题,我认为我需要正确解决未来的性能,数据管理和默认项目更新等问题。

0 个答案:

没有答案