Моделирование данных для couchbase
У меня есть сканер, который тестирует веб-сайты / страницы. И ниже модель, которую я бы сделал с RDBMS:
class Site{
Uri Uri {set;get;}
Collection<Test> Test{set;get;}
}
class Test{
Collection<Page> Pages {set;get;}
}
class Page{
// Page info
}
Мои запросы будут такими, как, сколько страниц не удалось загрузить, сколько вернуло 404 и т. Д. На сайт и в целом.
Поэтому моя забота о couchbase - размер документа, 20 МБ, на некоторых сайтах, которые я просматриваю, по 10 тысяч страниц. Если я сканирую пару, скажем, 10 раз, объект Site превысит этот предел, и в конечном итоге он будет.
Как правильно делать моделирование здесь?
1 ответ
Не существует правильного способа моделирования этого без большого количества информации. Я могу подумать о нескольких способах из головы, которые могут или не могут работать для вас, но вот мой первый.
- Каждый сайт может быть своим собственным объектом, который является 10k. Используйте объект счетчика для каждого сайта и используйте этот счетчик в качестве номера версии для использования в качестве части идентификатора объекта в каждом документе на основе счетчика. Таким образом, идентификатор объекта может выглядеть как "::". Тогда, когда вам нужна последняя версия, вы просто получаете значение объекта счетчика, а затем получаете требуемый идентификатор объекта. Очень легко и очень быстро.
Для получения дополнительной информации о расширенном моделировании объектов с помощью ключей в Couchbase, я мог бы порекомендовать этот пост и этот пост, который может дать вам хорошие идеи. Эти два примера не совсем уместны, но они должны помочь вам подумать о том, как вы можете моделировать свои данные и почему вы можете принять определенное решение, которое поможет вам воспользоваться конкретными возможностями Couchbase. Как я уже сказал, здесь действительно нет правильного пути. Это будет зависеть от ваших данных, варианта использования и производительности, которая вам нужна для работы с Couchbase. Есть лучшие способы, чем другие, это все.