1
7
有三种可能的选择,每种都有利弊。 重用关系数据库
您已经将实体存储在关系数据库中了。可以将未定义的属性存储在具有
优势:
缺点:
使用键值存储键值存储,例如 Redis 和 Riak 或更高级的 Apache Cassandra ,针对存储键值对进行了优化(这并不奇怪…)。您可以在RDBMS旁边使用键值存储,专门用于存储属性,同时将实体保留在RDBMS中。 优势:
缺点:
使用文档数据库您可以使用文档数据库来存储属性。但您也可以大胆尝试,将所有内容存储在文档数据库中,包括您的实体。 优势:
缺点:
成熟的文档数据库技术Apache CouchDB 有 quite a list of applications 使用它并接收 positive feedback 来自堆栈溢出社区。它有一些 drivers for .NET 但是我不能告诉你这些驱动程序有多成熟。 MongoDB给人印象深刻 list of production employments . 有三个专业 drivers for .NET 可供选择,似乎都是 good quality . RavenDB对.NET的支持非常好,因为它是为.NET平台设计的。但是,我还没有找到在RavenDB上运行的大型生产环境的例子。不过,我认为这绝对值得探索。 在生产环境中,我对它们中的任何一个都没有太多实际操作经验,因此我不清楚它们备份/恢复有多容易。但是考虑到这些NoSQL系统没有RDBMS系统那么严格,我想它们应该比RDBMS更容易在没有停机的情况下进行备份/恢复。 |