2012-02-03 5 views
1

Что будет более эффективным?Лучший способ моделирования моих занятий?

Есть большой вид с одним свойством фильтровать

или

Имеют большой вид и в другом виде имеют propertylist с ключами и использовать второй вид восстановить объекты принадлежат к первому виду. 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 получить только у.е. stomer, который меня интересует. Список будет иметь 6k aprox.

Спасибо.

ответ

1

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

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

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