我正在考虑将MongoDB用于Web应用程序,但我已经读过在某些情况下不推荐使用它。我想知道我的项目是否会成为其中一种情况。
以下是我系统中实体的简要概述 -
正如您所看到的,有许多实体彼此之间存在各种关系。数据完整性很重要。这种模式是否适合MongoDB?
答案 0 :(得分:5)
您的数据似乎非常关系,而不是面向文档。
您还指出数据完整性是一项重要要求(我假设您的意思是指不同实体之间的参照完整性)。当实体未存储在同一文档中时,很难保证它们在MongoDB中的完整性。此外,MongoDB不能强制执行任何约束(字段值的唯一性除外)。
你似乎也总体上存在一种非常关系的思维模式,这将使你难以利用MongoDB如何使用它。
由于这些原因,我建议你坚持使用关系数据库。
您之所以考虑使用MongoDB,可能是因为您听说它很快并且可以很好地扩展。是的,它速度很快,并且可以很好地扩展,但仅仅因为它不强制引用完整性,并且因为它不执行表连接。当你需要这些功能并因此必须找到难以理解的变通方法来模拟它们时,MongoDB将不再那么快。