В чем разница между объектно-ориентированной базой данных и документами?

В чем разница между объектно-ориентированными и документами?

Я не использовал объектно-ориентированные базы данных, но когда я использую базу данных документов (RavenDb), я сохраняю и читаю обычные объектно-ориентированные классы без проблем.

1 ответ

Я перешел из db4o (OODB) в RavenDB (DB документа). Большая разница, которую я обнаружил, заключается в том, что объектные БД хранят полные объекты, а когда объект хранится с другим объектом внутри него, этот под-объект хранится в полном объеме и является последней версией этого объекта. С помощью DB документа объекты сохраняются, но они организованы по-разному. Объект aggregate/root будет хранить части под-объекта, чтобы объект aggregate/root был самодостаточным. Когда вы извлекаете корневой объект, вы не протягиваете и не захватываете объекты, связанные с ним.

OODB будет хранить команду таким образом:

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

БД документа хранит команду таким образом:

TeamName
City
List<string> PlayerNames
</string>

Имена игроков будут храниться здесь, потому что требуется весь командный объект.

RavenDB имеет хорошее объяснение теории документов DB:

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

licensed under cc by-sa 3.0 with attribution.