Обработка изображений в виде блога, построенная с использованием таблицы хранения Azure. Пользователь отправляет сообщение, а база данных записывает регион, город и язык пользователя вместе с ним.Табличка с таблицей хранения данных Azure для хранения фильтров
После этого пользователь может просматривать все сообщения других пользователей и фильтровать их с помощью любой комбинации Region, City и Language. Или ни того, ни другого.
Я вижу несколько решений:
- Поместите каждое сообщение в 8 различных разделах с комбинациями Регион-Сити-Language (плюсы: грозовых запросами быстрыми на чтении; минусы: 8 сделок за сообщение о записи).
- Поместите каждое сообщение в 4 разных разделах с комбинациями Region-City и возможность выполнять сканирование разделов для фильтрации по языкам (профи: меньше транзакций, чем (1); минус: разбиение на разделы, 4 транзакции на сообщение).
- Поместите каждое сообщение в разделы на основе идентификатора пользователя (профи: одна транзакция на сообщение, минусы: медленное сканирование таблицы и сканирование разделов после этого).
Путь я вижу это:
- Быстро читает, медленно (и, возможно, дорогостоящим) пишет.
- Сбалансированное считывание/запись/стоимость.
- Быстрая запись, медленная (но дешевая).
«Стоимость/дешево» означает цену, основанную на транзакциях (а не на пробелах). И «сбалансированным» я имею в виду только среди этих вариантов.
Мысль об использовании индексных таблиц, но не могу понять, как они здесь помогают. Итак, вопрос в том, может быть, есть другой, лучший способ?
Это действительно мнение и широкий выбор - нет правильного ответа. Вам нужно будет сравнить и выбрать правильную комбинацию для своего конкретного приложения. Не уверен, что вы подразумеваете под «индексными таблицами» (возможно, вы имеете в виду дополнительные таблицы хранения, с определенным индексированным свойством как ключ раздела/строки?). –
Да. Таблица индексов - это то, что вы описали. Я спрашивал, есть ли другие возможные решения. –