Modellazione dati NoSQL per documenti nidificati a più livelli

2

Che tipo di modellazione dati NoSql è la più adatta per i seguenti requisiti?

Questo può essere visualizzato (documento NoSQL) come una raccolta di record in cui ogni record contiene documenti nidificati. Le entità di documento annidate a diversi livelli sono basate su struttura piatta o struttura ad albero. Un record è strutturalmente una singola entità, cioè una cancellazione di un record cancella tutto il record e i suoi dati del modulo.

Il modello del tipo di documenti nidificati non offre la flessibilità necessaria per eseguire query sugli elementi del documento secondario ma mantiene la struttura del record semplice. D'altra parte, se i moduli sono rappresentati come raccolte diverse, allora può migliorare la query ma le operazioni di riferimento e di join devono essere gestite in back-end.

I casi d'uso tipici del sistema sono, le entità modello possono crescere fino a 100.000 articoli per modulo, query più frequenti e aggiornamento meno frequente delle entità e pesante riferimento incrociato delle entità (ad esempio, un'entità nel profondo la struttura ad albero nel modulo B riferita ad un'entità nel modulo A).

Se i moduli sono implementati come documenti separati, mantenere la relazione tra il record corrispondente e le entità del modulo diventerebbe ingombrante. Questo diventerà un problema più serio se il numero di record aumenterà, quindi la rispettiva collezione di moduli crescerà significativamente senza limiti, mentre incorporando il modulo all'interno del record crescerà solo fino a 100.000 elementi.

Una proposta per il problema precedente. Crea documenti separati con le informazioni di Record + Module, quindi può essere trattato logicamente raggruppato come entità singola. Ad esempio, Record1 come un documento, ModuleA del Record1 come Record1_ModuleA document e così via. In questo modo i documenti con la combinazione ID del record + nome modulo possono essere raggruppati per formare un'entità.

Qualunque Db NoSQL supporta il raggruppamento di documenti correlati? In questo caso, il documento del record può essere raggruppato con i suoi moduli come documenti separati e il gruppo può essere identificato logicamente come una singola entità del record.

In questo momento, sto pensando in termini di database di documenti. Questo potrebbe essere gestito in modo efficiente con qualsiasi altra tecnica di modellazione dei dati?

    
posta A Bittersweet Life 20.02.2018 - 13:11
fonte

0 risposte