Лучший способ смоделировать мои занятия? - PullRequest
1 голос
/ 03 февраля 2012

Что будет эффективнее?

Большой вид с одним свойством для фильтрации

или

Имеет большой вид и в другом виде имеет список свойств с ключами и использует второй вид для восстановления сущностей, принадлежащих первому виду. Aprox 6k предметов в списке.

опции 1 _ __ _ __

class customer()
  propertyinteger
  propertystriing
  ...
  propertyintegerID = use to be filtered and indexed
    thousand of costumers

опция 2 _ __ _ ____

class customer()
  propertyinteger
  propertystriing

class CustomerGroup()
    propertystring
    propettycustomerList (repeated=True) (save a list with __key__ of customer class)

И я использую CustomerGroup ListProperty, чтобы получить только интересующего меня клиента. В списке будет около 6 тыс. Приблизительно.

Спасибо.

1 Ответ

1 голос
/ 04 февраля 2012

Вариант 1, вероятно, в порядке. Если я вас правильно понимаю, каждый клиент может принадлежать к группе, клиент может принадлежать только к одной группе за раз, и вы хотите иметь возможность запрашивать всех клиентов, принадлежащих к группе. Ваш групповой запрос является просто фильтром равенства для одного свойства типа Customer.

Существуют и другие соображения относительно ваших потребностей в гарантиях согласованности и запросов. Предполагая, что две сущности Customer должны быть в отдельных группах сущностей, индекс свойства идентификатора группы будет обновляться с возможной согласованностью, поэтому новый Customer или изменение идентификатора группы могут не появиться в результате запроса группы, пока вскоре после обновления , Если это не в порядке, вариант 2 или набор отдельных объектов сопряжения клиентов с группами в одной группе объектов приведут к тому, что групповой запрос (с фильтром предков) будет строго соответствовать обновлениям. Вариант 1 может быть сделан строго согласованным, если поместить все объекты Customer в одну группу, но это имеет потенциальные недостатки в зависимости от потребностей вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...