Я создаю приложение со многими отношениями;
Элемент объекта «Изображение» может быть связан с любым количеством галерей («Галерея»). И, конечно, галерея может содержать любое количество изображений.
Итак, следуя предложению Google здесь, я буду использовать список в «Picture», который содержит внешние ключи «Gallery». Это подход BigTable.
(Подход Реляционного БД старого стиля заключался бы в размещении таблицы / сущности между «Рисунок» и «Галерея».)
Вот мой вопрос: при хранении Ключа я должен использовать «StringListProperty» для «Picture» или «ListProperty (db.Key)» будет работать лучше?
Одна причина, по которой я вижу StringList , заключается в том, что я могу хранить и другие значения, кроме Keys, но с другой стороны, в любом случае это будет грязный стиль. Но я также почти уверен, что Google предложил не использовать более одного Списка на объекте, потому что Индекс (ы) взорвется. Так что это будет держать меня в черном ходу.
Что касается ListProperty с типом " Ключ ", одной точкой будет автоматическая проверка, если значение фактически является Ключом.
Поскольку преобразовать строки в ключи очень просто, и наоборот, я не вижу причин для предпочтения одного из типов списка здесь.
Когда речь заходит о проблемах с производительностью, я понятия не имею, как можно это проверить, но, похоже, это будет основным фактором в этом решении.
Любопытно ваше мнение. Особенно, если кто-то проверил производительность на этом или был бы так добр и сделал это.
Cheers,
// Ханнес