Mysql
 sql >> Database >  >> RDS >> Mysql

Il sistema di prenotazione è adatto per Amazon DynamoDB/NoSQL?

Ho fatto molto con i database relazionali e un po' con i database NoSQL (solo così sai da dove vengo). IMHO, i database NoSQL sono più adatti a scenari in cui uno o più sono veri:

  1. I dati sono essenzialmente piatti (non molte relazioni, quasi come un vecchio file flat)
  2. C'è un record di tipo "genitore" definito con record "figlio" che sono abbastanza piccoli/accessibili abbastanza frequentemente con il genitore da giustificarne l'incorporamento direttamente nel record.
  3. Hai bisogno della libertà di aggiungere/compilare i campi entro limiti ragionevoli. Mi piace pensarlo come un'eredità, in cui ogni elemento nella tabella condivide alcuni tratti comuni (ID, nome), ma record diversi potrebbero avere tratti diversi. Ad esempio, un catalogo di prodotti online potrebbe contenere libri, biciclette e brani MP3. Un record per un elemento "libro" avrebbe elementi come ISBN, numero di pagine, autore, ecc. Una "bici" potrebbe avere dimensioni e colore della ruota e un "MP3" avrebbe lunghezza, artista, genere, ecc. Non avresti mai tutte queste cose in una tabella "item" in anRDS senza un serio sovraccarico o lasciando i campi vuoti. Un database NoSQL ti permetterebbe di memorizzare tutte queste informazioni nella tabella e solo per gli elementi che ne hanno bisogno.

Puoi sicuramente creare lo schema che includi con la tua domanda usando le capacità di indicizzazione di Dynamo, ma proveresti a far funzionare un database NoSQL come un RDS.

Detto questo:io stesso lo proverei prima con Dynamo come esperienza di apprendimento. :)