Qual é a diferença entre um pai e uma propriedade de referência no Google App Engine?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Pelo que eu entendo, o atributo pai de uma db.Model (normalmente definidos / passada na chamada do construtor) permite definir hierarquias em seus modelos de dados. Como resultado, isso aumenta o tamanho do grupo de entidades. No entanto, não é muito claro para mim por que iria querer fazer isso. É este estritamente para o cumprimento ACID? Eu gostaria de ver situações em que cada um é mais adequado ou mais apropriada.

Foi útil?

Solução

Existem várias diferenças:

  • Todas as entidades com o mesmo ancestral estão no mesmo grupo de entidades. Transações só pode afetar as entidades dentro de um único grupo de entidades.
  • Todas as gravações para um único grupo de entidades são serializados, então o rendimento é limitado.
  • A entidade pai é definido na criação e é fixo. As referências podem ser alteradas a qualquer momento.
  • Com propriedades de referência, só é possível consulta para relações diretas, mas com propriedades pai, você pode usar o filtro .ancestor () para encontrar tudo (direta ou indiretamente) descende de um determinado ancestral.
  • Cada entidade tem apenas um único pai, mas pode ter várias propriedades de referência.

Outras dicas

A única finalidade de grupos de entidade (definida pelo atributo pai) é permitir transações entre diferentes entidades. Se você não precisa as transações, não use as relações grupais entidade.

Eu sugiro que você re-ler o href="http://code.google.com/appengine/docs/datastore/keysandentitygroups.html" rel="noreferrer"> seção dos docs, ele me levou muito poucos lê para entender a idéia.

assistir também estes palestras, entre outras coisas, eles discutem as transações e grupos de entidade:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top