Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 何时用NoSQL/DocumentStore替换RDBMS/ORM_.net_Nosql_Rdbms - Fatal编程技术网

.net 何时用NoSQL/DocumentStore替换RDBMS/ORM

.net 何时用NoSQL/DocumentStore替换RDBMS/ORM,.net,nosql,rdbms,.net,Nosql,Rdbms,我已经看过MongoDB/norm(但需要一个通用的面向文档的存储回答)。它看起来真的很好用,我很想知道什么时候应该用它来代替RDBMS+ORM 我应该使用什么,例如: 堆栈溢出相似站点 社会团体 论坛 (我发布了另一个更一般的示例,但它得到了一个精彩的答案,其他人可能会对此感兴趣,因此提出了一个新问题)您提到的所有示例都可以使用文档库构建。你是否应该使用它,取决于具体的要求 如果您与支持金钱交易的社交社区打交道,那么您确实应该使用RDBMS来处理这些交易。在这方面,您根本无法承受数据不一致

我已经看过MongoDB/norm(但需要一个通用的面向文档的存储回答)。它看起来真的很好用,我很想知道什么时候应该用它来代替RDBMS+ORM

我应该使用什么,例如:

  • 堆栈溢出相似站点
  • 社会团体
  • 论坛

(我发布了另一个更一般的示例,但它得到了一个精彩的答案,其他人可能会对此感兴趣,因此提出了一个新问题)

您提到的所有示例都可以使用文档库构建。你是否应该使用它,取决于具体的要求

如果您与支持金钱交易的社交社区打交道,那么您确实应该使用RDBMS来处理这些交易。在这方面,您根本无法承受数据不一致的后果

如果应用程序在数据一致性方面没有非常严格的要求,可以考虑使用文档数据库。与RDBMS相比,它有几个优点。例如,如果您正在使用来构建应用程序,您会发现聚合根可以自然地存储为单个文档。这将导致实体内的数据碎片非常少,在多个节点上分片数据时,可以提供更好的性能

一些驱动程序,包括MongoDB的NoRM,支持类型鉴别器。这些允许您使用很少的配置来持久化和重新水化多个子类。例如,如果应用程序支持多种类型的家庭地址,则驱动程序将负责处理不同的地址子类型。您还可以添加新的子类型,驱动程序也会自动处理这些子类型。有关详细示例,请参见

如果没有面向文档的存储优于SQL数据库的最大优势,上述操作就不可能实现:无模式数据。如果您处理的是用户定义的数据,那么文档数据库就是最好的选择。例如,如果您允许用户上载文件并使用他们想要的任何数据自由标记它们,那么您可以轻松地将这些标记存储为普通键值对,甚至可以将这些标记存储为用于分类标记的嵌套键值结构