Мне понравилось создавать пару простых приложений на GAE, но теперь я смущен тем, как архитектор организатора музыкальной коллекции в движке приложения. Короче говоря, я не могу понять, как фильтровать несколько свойств при сортировке по другой.Фильтровать и сортировать информацию о музыке в Google App Engine
Давайте предположим, что основная модель является альбомом, который содержит несколько свойств, в том числе:
- Названия
- Исполнитель
- Этикетка
- Публикации Год
- Жанр
- Длина
- Список названий треков
- Список настроений
- кодировки даты вставки в базу данных
Давайте также предположим, что я хотел бы, чтобы фильтровать всю коллекцию, используя эти свойства, а затем сортировки результатов по одному из:
- год издания
- Длина альбома
- Исполнитель название
- Когда была добавлена информация я в базе данных
Я не знаю, как это сделать, не набегая на взрывоопасный индексный головоломка. В частности, я хотел бы сделать что-то вроде:
Albums.all().filter('publication_year <', 1980).order('artist_name')
Я знаю, что это невозможно, но то, что обходной путь?
Это похоже на довольно общий вид применения. Музыкальные альбомы могут быть ресторанами, бутылками вина или отелями. У меня есть набор элементов с дескриптивными свойствами, которые я хотел бы фильтровать и сортировать.
Есть ли образец модели данных с лучшей практикой, с которой я не обращаю внимания? Любой совет?
Это (переработка для выравнивающих фильтров) на самом деле то, что предложил Бретт в своем разговоре GoogleIO: http://code.google.com/events/io/sessions/BuildingScalableComplexApps.html. Я бы предложил посмотреть его - действительно проницательный. –
Я был там в то время, поэтому мне не нужно его смотреть. ;) –