У нас есть многопользовательское приложение, которое использует Azure DocumentDB в качестве базы данных NoSQL, ориентированной на документы.
Для мультиарендности мы читаем этот вопрос и эту запись в блоге. Поскольку прямо сейчас наше количество пользователей не соответствует необходимости использовать разные базы данных и/или documentCollections, и, что более важно, для экономии средств мы реализовали мультиарендность с предложением «Где» в поле TenantId с одним documentCollection.
Точно так же, когда дело доходит до хранения «документов» или «объектов» совершенно разной природы (скажем, например, Book и Car), мы задаемся вопросом, использовать ли один documentCollection.
На первый взгляд кажется более разумным создать два разных documentCollection для Book и Car. Однако создание documentCollection стоит минимум 25$. Мы не хотим платить +25$ каждый раз, когда нам нужно добавить новую функцию, даже если она предназначена для хранения небольшого объема данных (например, наше приложение хранит много Books, но мало Cars...).
Хорошо ли поместить Книгу и Машину в один и тот же documentCollection? И сохраните ссылку на тип документа в общем элементе (например, string Type ="Book" or string Type = "Car").
Зная, что мы уже внедрили мультиарендность с «предложением» Where, чтобы запросить все автомобили в нашем приложении для данного арендатора, все наши запросы будут содержать Where TenantId ="XXXX" AND Type = "Car".
Я видел, что DocumentDB теперь поддерживает разделенную коллекцию. . Может ли это быть хорошим использованием разделов или, наоборот, их следует сохранить для достижения лучшей масштабируемости и не приспособлены для разделения различных типов документов, количество объектов которых может быть неодинаковым?