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

cout<<"enter second string:\t";
cin>>str;
cin.get(str,200);

здесь сначала вы пытаетесь прочитать второе слово дважды в одну и ту же переменную. прокомментируйте один из них и попробуйте напечатать содержание ул.

#include<iostream>
#include<string.h>
using namespace std;
int main(){
    char str[200]; 
    string str1;
    cout<<"Enter a string:\t";
    getline(cin,str1);
    cout<<str1 <<endl;
    cout<<"enter second string:\t";
    // cin>>str;
    cin.get(str,200);
    cout<<str<<endl;

}
12
задан Chris Collins 1 May 2009 в 05:34
поделиться

3 ответа

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

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

9
ответ дан 2 December 2019 в 19:55
поделиться

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

0
ответ дан 2 December 2019 в 19:55
поделиться

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

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

Похожие вопросы: