在我正在构建的系统中,它本质上是一个问题跟踪系统,但有各种问题模板。某些问题类型的格式与其他类型不同。
我最初计划使用带有主issues
表的MySQL和包含key =>的issues_meta
表。价值对。但是,我认为NoSQL(MongoDB)可能是更好的选择。
MongoDB能否为我提供生成“标准”的能力 报告,如类型问题#,按类型分类的问题数量,#of 每个人分配的问题等?我问这个因为我读了几个 消息人士称Mongo不善于报道。
我还计划将我的审计日志存储在Mongo中,因为我希望所有操作都有一个“表”(对任何表的修改)。在Mongo中,我可以存储容易更改的每个字段,因为它是无模式的。这是个坏主意吗?
我还应该知道其他什么,Mongo会为我想要的东西工作吗?
答案 0 :(得分:1)
MongoDB肯定会工作(如果你愿意,你可以使用capped collections自动删除旧记录),但你应该问问自己,它是否适合这项任务呢?对于用例,您已经描述了使用Redis(简单和足够快)或Riak(如果您非常关心日志数据)的更好选择。
答案 1 :(得分:1)
我认为MongoDB将完全匹配该用例。
MongoDB集合是异构的,这意味着您可以将包含不同字段的文档存储在同一个包中。因此,不同的报告模板不会成为显示阻止者。您将能够使用单个文档对完整问题进行建模。
MongoDB也非常适合日志记录。您可能对上限集合感兴趣。
如果您需要在文档之间建立关系关联,您也可以拥有它。
如果您使用的是Ruby,我可以向您推荐Mongoid。它会让它变得更容易。此外,它还支持文档版本控制。