我开始使用 ASP.NET MVC 3 通用管理系统(项目管理是第一个组件)。现在我一直在阅读一些关于 RavenDB 的内容,这听起来很有趣。我喜欢它的最重要的事情之一是我不需要 ORM 上的任何类型来处理来自数据库的数据。这将使我的代码更加简洁和快捷。然而,在过去 6 年多的时间里,我一直专注于使用 MySQL,因此我倾向于与我的数据密切相关。有一些事情似乎 NoSQL 不适合。我想把这些东西扔在那里,也许这些问题可以在 NoSQL 解决方案中处理,我只是觉得太相关了(再说一遍,也许这个项目应该用 MySQL 完成)。这些是我正在考虑的问题:
唯一标识符:我希望能够为很多事情提供唯一标识符。对于项目之类的东西,名称应该是唯一的并且可以使用它但是当涉及到项目下的任务时,标题可能不是唯一的,这是我将使用 quto-increment 字段的地方,但我可以在 RavenDB 中做到这一点(据我所知)
链接:使用状态和类型等字段我只会使用带有外键的链接。现在对于一对多关系,我可以只使用文本而不是尝试链接外键(在 NoSQL 中没有外键),但是使用多对多链接,这是一个问题。例如,我打算有一个标签系统(就像这里一样),其中大多数项目可以附加 1 到多个标签,然后我可以在这些标签上执行项目搜索。有没有办法在 NoSQL 中做到这一点?
RDBMS 真的是这里工作的最佳工具,还是我只是没有正确地思考“NoSQL”的方式,而我可以使用 NoSQL (RavenDB) 来实现这一点?