Ho difficoltà a definire questo modello di dati che ho riscontrato lavorando su diverse applicazioni.
Consiste in:
- Un tipo di oggetto composto da molti oggetti stessi
- Un secondo tipo di oggetto, in cui ogni istanza "ha molti" del primo oggetto
- E, ciascuno dei sotto-oggetti del primo oggetto è modificabile per ogni associazione al secondo tipo di oggetto.
Un semplice esempio potrebbe essere:
- Un corso di programmazione costituito da una serie di lezioni
- Le lezioni sono composte da un set di compiti.
- Un corso può essere assegnato a uno studente.
- Tuttavia, una volta assegnato un corso a uno studente, ogni lezione e / o compito può essere personalizzato per quello studente, con rimozioni e aggiunte, al punto in cui il corso originale può essere irriconoscibile.
Nelle mie soluzioni, ciò che risulta è:
Al momento dell'assegnazione di un corso a uno studente, il corso viene caricato in memoria. Quindi, per ciascun oggetto secondario, viene generato un oggetto relazione studente / oggetto secondario con i metadati appropriati. In sostanza, sto usando l'oggetto originale come modello per generare gli oggetti personalizzabili richiesti.
Ciò si traduce in un'enorme quantità di dati man mano che gli oggetti secondari diventano più complessi e numerati. Mi chiedo se ci sia qualche ottimizzazione o modello per ridurre la quantità di logica / complessità richiesta per manipolare questo modello di dati.