MongoDB:存储频繁修改的引用的方法

时间:2019-03-22 02:02:27

标签: mongodb database-design

需要一些建议,以便在经常更新的Mongo实体之间存储大量引用。

某些背景

  • 1个事件可以包含5000条日志。
  • 1个事件可以关联10个资产(分配对象)。
  • 为每个事件的每个资产创建日志。
  • 查询模式:按分配查找所有日志(eventId和assetId)。

实体及其关系

EVENT <-1--------------N-> LOG   
EVENT <-N--ASSIGNMENT--N-> ASSET

Mongo收藏和文档

event: { id, name, ... }
asset: { id, name, ... }
log: { id, eventId, metadata, ... }
assignment: { id, assetId, eventId, metadata, ... }

出现问题

  • 存储日志和分配(事件和资产)之间的关联的最佳方法是什么?请注意,这些关联会频繁并同时更新。

方法1

在分配实体中存储logId:

assignment: { id, assetId, eventId, logIds, ... }

方法2

创建一个单独的实体以在日志和赋值之间保存一个引用:

assignmentLog: { assignmentId, logId }

另一种方法?

任何建议将不胜感激。谢谢。

0 个答案:

没有答案