Мартин Клеппманн (Martin Kleppmann) при разработке приложения с интенсивным использованием данных говорит, что отношение «один ко многим» реализовано в базе данных документов с использованием древовидной иерархии. Например, как указано в приведенном ниже коде, пользователь может занимать несколько позиций, которые могут быть представлены в виде списка назначенных должностей и организации. Но Организация будет дубликатом. Таким образом, данные не могут быть нормализованы, как в RDBMS. Далее в книге говорится, что отношение «многие-к-одному» не может быть представлено в БД документов, так как оно не поддерживает соединение. Но он не может поддерживать один ко многим также вопреки своему требованию, потому что, если данные хранятся в отдельной сущности, то БД документа не может быть представлена как целое, как указано ниже в представлении JSON. Так что, если мы говорим, что база данных документов поддерживает отношение «один ко многим», то это невозможно без сохранения дублирующейся информации?
{
"user_id": 251,
"first_name": "Bill",
"last_name": "Gates",
"summary": "Co-chair of the Bill & Melinda Gates... Active blogger.",
"region_id": "us:91",
"industry_id": 131,
"photo_url": "/p/7/000/253/05b/308dd6e.jpg",
"positions": [
{"job_title": "Co-chair", "organization": "Bill & Melinda Gates Foundation"},
{"job_title": "Co-founder, Chairman", "organization": "Microsoft"}
],
"education": [
{"school_name": "Harvard University", "start": 1973, "end": 1975},
{"school_name": "Lakeside School, Seattle", "start": null, "end": null}
],
"contact_info": {
"blog": "http://thegatesnotes.com",
"twitter": "http://twitter.com/BillGates"
}
}