Если вам нужна побитовая поддержка, bitstring — отличная библиотека (работает версия 2.2 с патч). Однако вы не сможете запрашивать отдельные биты, а только всю битовую строку в целом.
Если количество категорий, которые потенциально может выбрать каждый пользователь, невелико, рассмотрите возможность использования повторяющегося свойства с одной записью списка для каждой выбранной категории. Это позволяет легко выполнять запросы и не будет потреблять вашу квоту так сильно, как вы думаете.
Помните, что большая часть затрат приходится на операции чтения и записи. Запросы дешевы, если вы ограничиваете количество объектов, которые вы извлекаете каждый раз; не имеет значения, есть ли у вас 100 или 1 000 000 объектов такого рода.
GAE требует некоторого нестандартного мышления, когда дело доходит до хранения данных (здесь денормализация иногда полезна). Я советую читать документацию по хранилищу данных сверху вниз, чтобы вы лучше понимали, как работают запросы и индексы. Также есть презентация Google I/O о том, как это работает под капотом.
Как упомянул jterrace, иногда вам приходится задаваться вопросом, не превышает ли время, потраченное на разработку оптимального решения, дополнительные затраты на менее эффективное, но более простое решение.
person
jdiaz5513
schedule
13.03.2013