database - 我应该使用“指针”来引用另一个集合中的对象,还是直接存储这些对象(MongoDB)?
问题描述
我有两个潜在的集合 1) 帐户和 2) 工作。Accounts 集合存储“帐户”文档,其中包含有关用户帐户的信息。字段包括用户名、电子邮件、密码、描述等。
Jobs 集合包含“Job”文档,其中包含有关工作的信息,具有以下字段:标题、描述、创建日期、相关技能等。
本质上,用户可以创建作业,因此这两个集合是绑定在一起的,因为我想在用户仪表板 UI 上显示作业。我已经想到了 3 种方案来实现这一目标:
- 每个 Job 文档都有一个
UserID
字段,该字段充当指向创建作业的相应帐户的指针。加载仪表板时,会在作业集合中对UserID
与 accountID 匹配的所有字段进行查询。 - 每个 Account 文档都有一个 field
JobIDs
,它是一个“指针”数组,它引用由一个帐户创建的每个 JobID。当仪表板加载时,它会遍历这个数组,根据 JobID 执行查询以在 Jobs 集合中查找相应的作业。 - 在每个 Account 文档上,只有一个
jobs
字段,它是一个对象数组,每个对象代表一个作业。
哪个是最好的实现,为什么?我意识到对于选择 3,似乎不必进行任何查询的好处,但潜在的巨大文档的缺点。使用“指针”实现,搜索整个集合会很慢吗?
解决方案
推荐阅读
- javascript - 是否可以在映射回调函数的单个赋值表达式中解构某些属性并分配/传递整个对象?
- regex - 请逐步解释“.*”执行
- php - Authorize.Net 中的定期计费
- python - How to add/ modify/ patch altair chart data dynamically?
- excel - VBA无限嵌套for循环
- python - 使用python解决子集问题的变量动态编程范围
- java - 在 Thread.onSpinWait() 期间 CPU 使用率为 100%
- python - Python多进程和多线程或单个函数花费相同的时间
- mysql - 列出部门id、部门名称和每个部门的经理人数
- r - 对特定周的第一个和最后一个日期进行分组