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

Sib*_*Guy 9 document-database ravendb object-oriented-database

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

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

Bob*_*orn 10

我从db4o(OODB)转到RavenDB(文档DB).我发现,最大的区别在于对象DB存储完整对象,当对象与其中的另一个对象一起存储时,该子对象将完整存储,并且它是该对象的最新版本.使用文档DB,仍然存储对象,但它们的组织方式不同.的聚集体/根对象将存储部件的子对象,使得聚集体/根对象是自包含的.检索根对象时,您没有伸出并抓取与其相关的对象.

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

TeamName
City
List<Player>  // The entire player objects would be stored here
Run Code Online (Sandbox Code Playgroud)

文档DB会以这种方式存储团队:

TeamName
City
List<string> PlayerNames
Run Code Online (Sandbox Code Playgroud)

PlayerNames将存储在此处,因为这是团队对象的所有需求.

RavenDB对文档DB的理论有一个很好的解释:

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