Я пытаюсь моделировать довольно простые отношения в CouchDB, и у меня возникли проблемы с определением наилучшего способа выполнить это. Я бы хотел, чтобы пользователи могли создавать списки объектов видеоигр. У меня есть документы видеоигр, которые хранятся в БД уже с "type":"game"
. Я хотел бы иметь возможность запросить идентификатор объекта списка (через представление) и вернуть метаданные списка (название, дату создания и т.д.) И части игрового документа (например, название и дата выпуска). Кроме того, я хотел бы иметь возможность добавлять/удалять игры в/из списков, не загружая весь документ списка и не отправляя его обратно (так что это означает, что я не могу просто сохранить информацию о игре в документе списка), как я в конечном итоге, нравится поддерживать нескольких пользователей, вносящих вклад в один и тот же список, и я не хочу вводить конфликты.
После прочтения вики CouchDB в EntityRelationships, я решил, что настройка документов отношений может быть лучшим решением.
Игра:
{
"_id": "2600emu",
"type": "game"
}
Список:
{
"_id": 123,
"title": "Emulators",
"user_id": "dstaley",
"type": "list"
}
Связь с игровым списком:
{
"_id": "98765456789876543",
"type": "relationship",
"list_id": 123,
"game_id": "2600emu"
}
Но, насколько я понимаю, это не позволило мне получить метаданные списка и метаданные игры в одном запросе. Любые советы?