Я перешел с db4o (OODB) на RavenDB (документ DB).Большая разница, которую я обнаружил, заключается в том, что объектные БД хранят полные объекты, и когда объект хранится вместе с другим объектом внутри него, этот подобъект сохраняется полностью, и это самая последняя версия этого объекта.В базе данных документов объекты по-прежнему хранятся, но они организованы по-другому.Агрегатный / корневой объект будет хранить частей подобъекта, так что агрегатный / корневой объект будет автономным.При извлечении корневого объекта вы не тянетесь и не захватываете связанные с ним объекты.
OODB будет хранить команду следующим образом:
TeamName
City
List<Player> // The entire player objects would be stored here
ADocument DB будет хранить команду таким образом:
TeamName
City
List<string> PlayerNames
Здесь будут храниться PlayerNames, потому что это все, что нужно объекту команды.
RavenDB имеет хорошее объяснение теорииБД документов здесь:
http://ravendb.net/docs/theory/document-structure-design