Я пишу приложение, которое позволяет пользователям отправлять сообщения между ними. Я использую транзакции, чтобы убедиться, что между любыми двумя пользователями существует только одно «верхнее» сообщение, и это «верхнее» сообщение имеет ссылку на «следующее» сообщение и т. д., образуя своего рода связанный список Сообщения. Сообщения ссылаются друг на друга через ссылочные свойства и помещаются в одну и ту же группу сущностей, объявляя каждую новую «верхнюю часть» имеющей предыдущую «верхнюю часть» в качестве родителя.
Однако проблема с этим подходом заключается в том, что каждый новый объект имеет ключ, который включает в себя весь ключ предыдущего объекта (т. е.: new_top_key == old_top_key + new_stuff). Это приводит к тому, что ключи сущностей растут с большой скоростью и, вероятно, очень плохо ведут себя после нескольких сотен сообщений в одной цепочке (но я на самом деле не проверял).
Итак, мой вопрос: 1) Является ли это преднамеренной функцией App Engine. 2) Должен ли я избегать такого типа структуры — или он каким-то образом эффективно обрабатывается App Engine внутри? 3) Есть ли у вас какие-либо предложения о правильном подходе к структуре типа связанного списка сущностей?
Спасибо и с уважением Алекс