ravendb - 面向对象数据库和文档数据库有什么区别?

标签 ravendb document-database object-oriented-database

面向对象数据库和文档数据库有什么区别?

我没有使用面向对象的数据库,但是当我使用文档数据库(RavenDb)时,我存储和读取通常的面向对象的类没有问题。

最佳答案

我从 db4o (OODB) 转到 RavenDB(文档 DB)。我发现最大的区别是对象数据库存储完整的对象,当一个对象与其中的另一个对象一起存储时,该子对象将被完整存储,并且它是该对象的最新版本。使用文档数据库,对象仍然被存储,但它们的组织方式不同。聚合/根对象将存储子对象的部分,以便聚合/根对象是独立的。当您检索根对象时,您并没有伸出手来抓取与其相关的对象。

OODB 会以这种方式存储团队:

TeamName
City
List<Player>  // The entire player objects would be stored here

文档数据库将以这种方式存储团队:

TeamName
City
List<string> PlayerNames

PlayerNames 将存储在这里,因为这是团队对象所需的全部内容。

RavenDB 在这里对文档数据库的理论有很好的解释:

http://ravendb.net/docs/theory/document-structure-design

关于ravendb - 面向对象数据库和文档数据库有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884407/

相关文章:

c# - 如何使用VS2012在对象被释放时进行调试?

c# - 返回 .NET Core 中 DocumentDB 中新创建文档的 id

c# - 如何优化 RavenDB 查询以检索所有文档?

.net - 推荐一个好的db4o查看器

orm - 使用 db4o 的示例网站

mapreduce - RavenDB 映射减少,减少中的重复条目

c# - Group by filtering 非group by field

nosql - 多 Map/Reduce 索引与关系连接

nosql - Multi-Tenancy 模型和nosql?

java - 查找对象的最快方法