2010-12-31 2 views
1

Привет, Я использую AppEngine для приложения, которое я пишу. Поэтому мне нужно назначить теги каждому объекту. Я хотел знать, что это лучший способ сделать это. Должен ли я создать пространственную разделенную строку тегов и затем запросить что-то вроде% search_tag% (я не уверен, что вы можете сделать это в JDOQL)?Схема тегов для AppEngine

Какие еще варианты у меня есть? Должен ли я создать другой класс, который будет отображать каждый объект в тег?

Что было бы лучшим с точки зрения масштабируемости, производительности и простоты использования?

Благодаря

ответ

2

Во-первых, '% search_tag%' типа запросов 'как' не работают на датасторе App Engine. Лучшее, что вы можете сделать, это префиксный поиск.

Трудно ответить на такие общие вопросы, как это. Лучшее решение будет зависеть от нескольких факторов, сколько тэгов вы ожидаете от одного объекта? Существует ли ограничение на количество тегов? Как вы будете использовать теги? Для поиска? Только для отображения? Ответы на все эти вопросы влияют на то, как вы должны проектировать свои модели.

Одним из общих решений для тегов является использование многозначного свойства, такого как список тегов.

Помните, что если у вас будет много тегов на ваших сущностях, это добавит накладные расходы во время записи, так как индексы также требуют времени. Кроме того, вы должны стараться избегать многозначных свойств несколько раз (или нескольких многозначных свойств) в запросах с неравенствами или заказами. Это может привести к «взрывающимся индексам», поскольку одна строка индекса записывается для каждой комбинации индексированных полей.

+0

Число записей будет незначительным по сравнению с количеством чтений. Также я намерен определить отношения между тегами, такими как тезаурус. Например. программирование и кодирование должны быть объединены вместе. Это совсем другая история, так как количество тегов намного меньше. Спасибо за ссылку – user513590

Смежные вопросы