Eu vim do mundo do banco de dados relacional e encontrei essa coisa do armazenamento de dados. demorou vários dias para pegar o jeito. Bem, existem algumas das minhas descobertas.
Você já deve saber que o armazenamento de dados é construído em escala e é isso que o separa do RDMBS. Para dimensionar melhor com um grande conjunto de dados, o App Engine fez algumas alterações (algumas significam muitas alterações).
Estrutura do RDBMS VS DataStore
No banco de dados, geralmente estruturamos nossos dados em Tabelas, Linhas, que no Datastore se tornam Tipos e Entidades .
Relações
no RDBMS, a maioria das pessoas segue o relacionamento Um-para-Um, Muitos-para-Um, Muitos-para-Muitos, No Datastore, como possui a opção "Sem junções", mas ainda podemos alcançar nossa normalização usando " ReferenceProperty "por exemplo, Exemplo de relacionamento individual .
Índices
Normalmente, no RDMBS, fazemos índices como Chave Primária, Chave Externa, Chave Única e Chave de Índice para acelerar a pesquisa e aumentar o desempenho do banco de dados. No armazenamento de dados, você deve especificar pelo menos um índice por tipo (ele será gerado automaticamente,quer você goste ou não), porque o armazenamento de dados pesquisa sua entidade com base nesses índices e acredita que é a melhor parte. No RDBMS, você pode pesquisar usando campo não indexado, embora demore algum tempo, mas No armazenamento de dados, você não pode pesquisar usando propriedades que não são de índice.
Contagem
No RDMBS, é muito mais fácil contar (*), mas no armazenamento de dados, por favor, nem pense da maneira normal (sim, existe uma função de contagem), pois ela tem 1000 Limit e custará tantas operações pequenas quanto a entidade que não é bom, mas sempre temos boas escolhas, podemos usar contadores de fragmentos .
Restrições exclusivas
No RDMBS, adoramos esse recurso, certo? mas o Datastore tem seu próprio caminho. você não pode definir uma propriedade como única :(.
Consulta
GAE Datatore fornece um recurso melhor muito COMO (Oh não! Armazenamento de dados não tem COMO palavra-chave) SQL que é GQL .
Inserção / Atualização / Exclusão / Seleção de Dados
Aqui onde todos estamos interessados, como no RDMBS, solicitamos uma consulta para Inserir, Atualizar, Excluir e Selecionar, exatamente como RDBMS, o Datastore colocou, excluiu, obteve (não fique muito animado) porque o Datastore colocar ou obter em termos de gravação, leitura, pequenas operações ( custos de leitura para chamadas do armazenamento de dados ) e é aí que entra em ação a Modelagem de Dados. você precisa minimizar essas operações e manter seu aplicativo em execução. Para a operação de redução de leitura, você pode usar o Memcache .