1

在我正在构建的系统中,它本质上是一个问题跟踪系统,但具有各种问题模板。某些问题类型的格式与其他问题类型不同。

我最初计划将 MySQL 与一个主issues表和一个issues_meta包含键 => 值对的表一起使用。但是,我认为 NoSQL (MongoDB) 可能是更好的选择。

MongoDB 能否为我提供生成“标准”报告的能力,例如按类型划分的问题数量、按类型划分的问题数量、每个人分配的问题数量等?我问这个是因为我读过一些消息来源说 Mongo 不擅长报道。


我还计划将我的审计日志存储在 Mongo 中,因为我想要一个用于所有操作的“表”(对任何表的修改)。在 Mongo 中,我可以轻松存储每个更改的字段,因为它是无模式的。这是一个坏主意吗?

还有什么我应该知道的,Mongo 会为我想要的而工作吗?

4

2 回答 2

1

MongoDB 肯定会工作(如果需要,您可以使用capped collections自动删除旧记录),但您应该问自己,它是否适合这项任务?对于您描述的用例,使用Redis(简单且足够快)或 Riak(如果您非常关心日志数据)是更好的选择。

于 2012-06-11T13:58:04.097 回答
1

我认为 MongoDB 将是该用例的完美匹配。

  • MongoDB 集合是异构的,这意味着您可以将具有不同字段的文档存储在同一个包中。因此,不同的报告模板不会成为阻碍因素。您将能够使用单个文档对完整问题进行建模。

  • MongoDB 也非常适合记录日志。您可能对上限收藏感兴趣。

  • 如果您需要在文档之间建立关系关联,您也可以拥有它。

  • 如果你使用 Ruby,我可以推荐你 Mongoid。这会让事情变得更容易。此外,它还支持文档的版本控制。

于 2012-06-11T20:34:55.507 回答