django-nonrel в Google App Engine - последствия использования ListField для ManyToMany - PullRequest
3 голосов
/ 07 октября 2010

Я работаю над приложением Google App Engine, и я относительно новичок в этом.

Я уже создал приложение в Django и у меня есть модель, использующая тип поля ManyToMany.

Мне известно, что django-nonrel не поддерживает типы полей "многие ко многим" Django. Поэтому я рассматриваю возможность использования ListField.

Вопросы:
- Каково значение использования ListField вместо ManyToMany?
- Я знаю, что это означает, что Django JOIN API не может быть использован. Но что это значит для моего приложения? - У меня будут проблемы с поиском чего-нибудь в поле «многие ко многим»?

Извинения, если это программирование 101 вопросов. Я - дизайнер, пытающийся сосредоточиться на разработке.

Спасибо

1 Ответ

1 голос
/ 07 октября 2010

Ну, как вы, наверное, знаете, вы будете расширять отношения более вручную. Django не может помочь так же сильно, как при использовании ManyToMany, но это не должно быть такой большой проблемой.

В зависимости от сложности отношений, вы можете подумать о создании модели именно для этой цели.

Я никогда не использовал этот подход в GAE, поскольку IMO действителен только тогда, когда объект имеет много связей (я бы сказал, более 50) или когда поиск, который вы планируете делать, выиграет от этого. Возможно, потому что они начинаются с обоих концов отношений с одинаковой частотой, или было бы неплохо иметь возможность циклически перебирать отношения, чтобы отобразить их или что-то в этом роде.

В прошлый раз, когда я что-то делал в GAE, я использовал ListField (или ListProperty, как тогда было известно), так как большинство объектов имели только около 20 связанных объектов, и поиск редко шел другим путем.

Так что в целом, это не имеет большого значения, и я не помню, чтобы это была какая-то боль в работе с / вокруг.

Надеюсь, это было полезно, несмотря на то, что это скорее "ИМО"

...