Vorrei sentire la vostra opinione sull'effettiva implementazione della relazione uno-a-molti con NDB Python. (Ad esempio, Persona (uno) -a-Compiti (molti))Implementazione efficace della relazione uno-a-molti con Python NDB
A mio parere, ci sono tre modi per implementarlo.
- Usa 'genitore' argomento
- Usa 'ripetuta' Proprietà strutturata
- Usa proprietà Key 'ripetuta'
ho scelto un modo basato sulla logica di sotto di solito, ma Fa senso per te? Se hai una logica migliore, per favore insegnami. è richiesto
Usa 'genitore' argomento
- operazione transazionale tra queste entità è richiesta
- riferimento bidirezionale tra queste entità
- Fortemente intenzione rapporto 'padre-figlio'
Utilizzare la proprietà strutturata "ripetuta"
- Non hanno bisogno di usare 'molti' entità singolarmente (sempre, usato con 'un' entità)
- 'molti' entità si riferisce solo da 'un' entità
- Numero di 'ripetuti' è a meno di 100
usa 'ripetuta' proprietà Key
- bisogno di usare 'molti' entità singolarmente
- entità 'molti' può essere definito da altre entità
- Numero di 'ripetuti' è più di 100
No.2 aumenta la dimensione del soggetto, ma possiamo salvare le operazioni datastore. (Dobbiamo usare la query di proiezione per ridurre il tempo della CPU per la deserializzazione). Pertanto, uso in questo modo il più possibile.
Ho davvero apprezzato la tua opinione.
L'attività ha KeyProperty che punta a Persona, si esegue una query per trovare attività per persona? – tesdal
È l'opzione # 4 che risponde @dragonx, vero? Se ho bisogno di interrogare compiti per persone e dobbiamo assumere che le persone abbiano un sacco di compiti, io uso questa opzione. Anche io lo uso nel caso di recuperare una parte dei valori delle proprietà. –