Estou tendo problemas para definir esse padrão de dados que me deparei trabalhando em vários aplicativos.
Isso consiste de:
- Um tipo de objeto que é composto por muitos objetos em si
- Um segundo tipo de objeto, em que cada instância 'possui muitos' do primeiro objeto
- E cada um dos subobjetos do primeiro objeto é modificável por cada associação ao segundo tipo de objeto.
Um exemplo simples pode ser:
- Um curso de programação que consiste em um conjunto de lições
- As lições são compostas de um conjunto de atribuições.
- Um curso pode ser atribuído a um aluno.
- No entanto, uma vez que um curso é atribuído a um aluno, cada lição e / ou tarefa pode ser personalizada para ele, com remoções e acréscimos, até o ponto em que o curso original pode ser irreconhecível.
Nas minhas soluções, o que isso resulta é:
Na atribuição de um curso a um aluno, o curso é carregado na memória. Em seguida, para cada subobjeto, um objeto de relacionamento aluno / subobjeto é gerado com os metadados apropriados. Basicamente, estou usando o objeto original como modelo para gerar os objetos personalizáveis necessários.
Isso resulta em uma enorme quantidade de dados à medida que os subobjetos se tornam mais complexos e numerados. Gostaria de saber se existe alguma otimização ou padrão para reduzir a quantidade de lógica / complexidade necessária para manipular esse padrão de dados.