Должны ли ваши данные существовать в одной большой таблице без объединения в Google App Engine?

StackOverflow https://stackoverflow.com/questions/810303

Вопрос

Поскольку Google App Engine не разрешает объединения, означает ли это, что я должен взять все таблицы в моем веб-приложении и придумать способ объединения их в одну огромную таблицу?

Это было полезно?

Решение

Просто потому, что у вас нет объединений, реализованных СУБД, не означает, что у вас не может быть нескольких таблиц.В App Engine они называются "типами сущностей", и вы можете иметь их столько, сколько захотите.

Как правило, вам необходимо денормализовать свои данные, чтобы избежать необходимости частых объединений.В тех немногих ситуациях, когда они неизбежны, вы можете использовать другие методы, например выполнение объединения в пользовательском коде.

Другие советы

Объединение его в одну большую таблицу - это всегда вариант, но в большинстве случаев это приводит к излишне большим и избыточным таблицам, что делает ваше приложение медленным и сложным в обслуживании.

Вы также можете эмулировать соединение, перебирая результаты запроса и выполняя второй запрос для каждого результата, найденного для первого запроса.Если у вас есть 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

Если вы ищете способ спроектировать datatable.Я бы порекомендовал вам провести небольшое исследование, прежде чем приступать к работе.У Google App Engine есть довольно волшебные свойства, такие как :

  • Самосмещение
  • Свойство многозначного списка

Это было бы очень полезно в вашем дизайне.Я поделился мой опыт здесь.

Чтобы узнать о возможностях масштабирования, существует эксклюзивный бесплатный курс по Udacity здесь просто по теме.Этому учит основатель reddit.com, и он четко объясняет, как происходит масштабирование в reddit, одном из сайтов с наибольшим количеством посетителей.Он показывает всю демонстрационную реализацию курса в gae (и это был джекпот для меня!).Они предлагают видеоролики со всем курсом бесплатно скачать можно здесь .Я усердно работал с app engine, прежде чем получил эти ресурсы.Поэтому я подумал, что поделиться этим может помочь другим, кто ступает ногой в воду.

Переход от реляционной базы данных к хранилищу данных App Engine требует смены парадигмы для разработчиков при моделировании своих данных.Взгляните здесь чтобы получить представление получше.Это потребует от вас более тщательного обдумывания того, как вписать вашу проблему в ограничения, налагаемые хранилищем данных, но если вы сможете, то вам гарантировано, что она будет выполняться быстро и масштабироваться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top