Domanda

Non ho modelli impostati come il seguente:

class Day(db.Model):
    date = db.DateProperty()
    total = db.FloatProperty()

class Event(db.Model):
    desc = db.StringProperty()
    amount = db.FloatProperty()

La gerarchia è in quanto tale: l'utente> Day> Evento (.. Gli utenti hanno Giorni Giorni hanno Eventi)

Quando un utente accede Voglio selezionare i loro giorni (per una gamma in base alla data lascia per dire) e poi per ogni giorno voglio ottenere i loro eventi. Diciamo solo che questi vengono visualizzati in un elenco per il momento.

Devo usare la proprietà parent per creare un gruppo di un'entità esplicito? O devo aggiungere una proprietà di riferimento il giorno per un utente, e aggiungere una proprietà di riferimento su eventi per un giorno?

Quali sono i pro ei contro di ciascun metodo? Considerazioni sulle prestazioni? Considerazioni scalabilità? E anche, come potrei interrogare per questo nel miglior modo possibile.

Grazie!

È stato utile?

Soluzione

Se è necessario aggiornare transazionale modelli Day ed eventi insieme (per esempio, le esigenze che il campo 'totale' aggiornamento con ogni evento), gruppi di utilizzo di entità. In caso contrario, le proprietà uso di riferimento.

Per selezionare più efficacemente tutti gli eventi in un intervallo di date, la soluzione migliore sarebbe quella di denormalizzare un po ', e mettere una proprietà 'data' sull'evento, pure. Poi si può fare una query su tutti gli eventi per l'utente dato, all'interno della gamma data, a prendere le entità Day da quelli, se ne avete bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top