Я рассматриваю возможность использования CouchDB для будущего сайта, но меня немного смущает вопрос о том, как внедрить систему пользовательских рейтингов для сайта. По сути, каждый элемент контента может быть оценен данным пользователем. Какой способ сделать это имеет смысл в модели CouchDB? Я думаю, что самый СУЩЕСТВЕННЫЙ и самый логичный способ - иметь 3 разных типа документов: Контент, Пользователи и документ user_rating, который выглядит примерно так.
{
user_id: "USERID"
content_id: "CONTENTID"
rating: 6
}
Затем я бы создал представление, в котором карта представляла собой набор всех документов контента и документов user_rating, основанных на идентификаторах документов контента, и где уменьшение соответствовало среднему значению рейтингов и возвращало документ контента с ключом идентификатора документа контента. .
Это лучший способ сделать это? Я пока не нашел много источников информации о лучших практиках CouchDB, поэтому я почти не уверен в этом.
Мой вывод:
Принятый ниже ответ, который я собирался реализовать, работает, но будьте осторожны, документы должны основываться на идентификаторе документа контента, что делает сложные запросы, основанные на других свойствах документа, проблематичными. Я возвращаюсь к SQL для своих нужд в этом приложении.