Couchdb "Get By Type" посмотреть дизайн
Так что для моих документов у меня есть свойство типа, которое определило их. И почти для всех этих "типов" мне нужен вызов "get by type".
Теперь вопрос в том, какой из этих проектов более эффективен;
Имейте единственное представление, у которого есть ключ с 'типом', который отображает все документы
У вас есть представление для каждого "типа", который просто отображает эти типы, и я могу запросить представление, чтобы получить все документы в представлении?
2 ответа
Это зависит от того, сколько "типов" у вас есть в вашей БД. Если их мало - используйте подход "просмотр по типу", и у вас все будет хорошо, и у вас будут более приятные URL-адреса API.
Однако, когда у вас будет около 70 типов (мой случай) документов в одной базе данных, было бы слишком неосознанным понимать, что этот подход больше не работает, и вам нужно одно единственное представление для фильтрации документов по типу - вы никогда не будете забудьте добавить свой специальный вид для нового типа документа, вам не нужно очищать устаревшие представления. В качестве дополнительной функции наличие единого представления позволяет вам получать документы нескольких типов с помощью одного запроса и иметь только одну задачу репликации, которая синхронизирует несколько типов документов между базами данных. То же самое верно для всех других полей, которые являются общими для каждой или большей части документов (таких как author, updated_at и т. Д.).
Окончательное решение за вами, но лучше выбрать способ, который освободит вас от дополнительной работы, а один дополнительный параметр запроса не намного дороже, чем отдохнуть.
Я думаю, что последний лучше. Иметь представление для каждого типа, который запрашивает / фильтрует для этого конкретного типа. Это позволяет вам из выпадающего списка Futon очень быстро отображать списки документов определенного типа. Почти как вы смотрите на "столы". Но не совсем;-)