Quando si tratta di creare tabelle nei transact SQL database, come SQL-Server e Sybase , l'approccio classico alla modellazione relazionale è ben definito. (L'autorizzazione è il libro di Halpin )
- Stabilisci i tuoi casi d'uso
- Stabilisci le tue entità
- Determina gli attributi delle entità
- Determina la relazione tra le entità
- Disegna le tabelle con i join per soddisfare i casi d'uso nella query
- Rifattorizza le tabelle all'ennesimo forma normale come richiesto.
(o qualche variazione su di esso).
Per i database Cassandra - questo modello è leggermente modificato, in quanto devi iniziare con i tuoi casi d'uso e quindi progettare per zero si unisce al tempo di query. (L'autorità per questo approccio è la documentazione di formazione datastax ).
Potresti dire che lasci le tue tabelle completamente denormalizzate a livello della query per il tuo caso d'uso. Quindi il modello è più simile a:
- Stabilisci i tuoi casi d'uso
- Stabilisci le tue entità
- Determina gli attributi delle entità
- Determina la relazione tra le entità
- Disegna le tabelle denormalizzate per soddisfare i casi d'uso nella query
Ora MongoDb è un database basato su documenti con la possibilità di fare join.
La mia domanda è: Qual è lo schema canonico per la progettazione del database con MongoDB?