Ho più esperienza con i database di documenti ma molti degli stessi principi si applicano qui. Non si desidera memorizzare List<Person>
quando si stanno già memorizzando i dati in un'altra posizione. Nel migliore dei casi, memorizzerai una lista di Referenze Personali.
In entrambi i casi ci sono dei compromessi. L'elenco può essere generato in qualsiasi momento se le informazioni sono state memorizzate come attributo. Ma devo chiedermi se è così dogmatico riguardo agli attributi che non sono semplici valori booleani? Cosa faresti se lo stato della persona fosse memorizzato con una enumerazione di rango?
public enum Rank {
VIP,
Preferred,
Normal,
Economy
}
In questo caso dovresti avere una lista per valore enum o memorizzarla come dizionario tra il riferimento della persona e il rango assegnato. In entrambi i casi, aggiunge un livello di complessità che ha sempre meno senso.
Puoi sempre facilmente interrogare l'oggetto o il database del documento per ottenere tutto Person
s con un attributo di person.isVIP == true
o person.rank = Rank.VIP
. Se l'elenco viene utilizzato spesso, puoi memorizzarlo nella cache per l'ottimizzazione delle prestazioni.
Detto questo, il tuo argomento è uno di prevedibilità e complessità . Come compagni di squadra, devi determinare quale approccio avrà la massima prevedibilità e la complessità minima generale . Ciò significa che devi prendere in considerazione il modo in cui le informazioni vengono utilizzate nell'elaborazione downstream quando prendi la decisione.