Поскольку Google App Engine не разрешает подключения, значит ли это, что я должен взять все таблицы в своем веб-приложении и выяснить способ объединения их в одну огромную таблицу?
Без подключения к Google App Engine ваши данные должны существовать в одной большой таблице?
Ответ 1
Просто потому, что у вас нет объединений, реализованных СУБД, это не означает, что вы не можете иметь несколько таблиц. В App Engine они называются "типами сущностей", и вы можете иметь столько их, сколько хотите.
Как правило, вам необходимо денормализовать свои данные, чтобы избежать необходимости частых объединений. В тех немногих ситуациях, когда они неизбежны, вы можете использовать другие методы, например, делать соединение в коде пользователя.
Ответ 2
Объединение его в одну большую таблицу всегда является опцией, но в большинстве случаев это приводит к излишним большим и избыточным таблицам, поэтому приложение будет работать медленно и с трудом.
Вы также можете эмулировать объединение, повторяя результаты запроса и запуская второй запрос для каждого результата, найденного для первого запроса. Если у вас есть запрос SQL
SELECT a.x FROM b INNER JOIN a ON a.y=b.y;
вы можете подражать этому примерно так:
for b in db.GqlQuery("SELECT * FROM b"):
for a in db.GqlQuery("SELECT * FROM a WHERE y=:1", b.y):
print a.x
Ответ 3
Если вы ищете способ создания данных. Я бы порекомендовал вам немного исследований, прежде чем начинать работу. Для Google App Engine есть довольно волшебные свойства:
- Самослияние
- Многозначное свойство списка
Это будет очень полезно в вашем дизайне. Я поделился моим опытом здесь.
Чтобы узнать о возможности масштабирования, существует эксклюзивный свободный курс в Udacity здесь только по теме. Он учил основателя reddit.com, и он ясно объясняет все масштабы событий, происходящих в reddit, одном из сайтов с наибольшим количеством посетителей. Он показывает всю реализацию демонстрации курса в gae (и это был джек-пот для меня!). Они предлагают все видео курса бесплатно скачать здесь. Я уже много работал с приложением, пока не получил эти ресурсы. Поэтому я думал, что это может помочь другим, кто ступает ногой в воды.
Ответ 4
Переход от реляционной базы данных к хранилищу данных App Engine требует изменения парадигмы для разработчиков при моделировании их данных. Посмотрите здесь, чтобы получить лучшую идею. Это потребует от вас больше думать о том, как подогнать вашу проблему к ограничениям, которые налагает хранилище данных, но если вы можете тогда, вам гарантировано, что он будет работать быстро и масштабируемо.