Relacionamento mestre-detalhe (DB)

Não sei se este é o melhor lugar para postar essa dúvida, mas acredito que talvez deva existir algum padrão que possa me auxiliar.

Vamos ver se eu consigo ser claro…

Tenho uma tabela COMPRAS que possui uma tabela COMPRAS_ITENS relacionada que possui uma tabela COMPRAS_ITENS_EMPRESAS relacionada.

COMPRAS —> COMPRAS_ITENS —> COMPRAS_ITENS_EMPRESAS

Minha dúvida é a seguinte:

Quando insiro um pedido posso ir adicionando itens - um relacionamento 1/N - enquanto que nos itens posso ir rateando as quantidades entre diversas empresas - mais um relacionamento 1/N. Portanto, somente irei gravar em banco de dados quando tiver concluído o pedido, devendo estes dados ficarem na memória enquanto a compra não for concluída.

Qual seria a melhor estrutura OOP para representar este cenário?

não sei se é a melhor, mas a primeira solução que me vem a cabeça é a entidade compras ter uma coleção da entidade compras_itens e compras_itens ter uma coleção de compras_itens_empresas.
talves alguem tenha outra sugestão…

[]'s