sql >> Databasteknik >  >> RDS >> Mysql

Är bokningssystem lämpligt för Amazon DynamoDB / NoSQL?

Jag har gjort mycket med relationsdatabaser, och lite med NoSQL-databaser (bara så att du vet var jag kommer ifrån). IMHO, NoSQL-databaser är bäst lämpade för scenarier där antingen en eller flera är sanna:

  1. Datan är i huvudsak platt (inte många relationer, nästan som en gammal platt fil)
  2. Det finns en tydlig post av "förälder"-typ med "underordnade"-poster som är tillräckligt små/tillgängliga tillräckligt ofta med föräldern för att motivera att bädda in dem direkt i posten.
  3. Du behöver friheten att lägga till/fylla i fält inom rimliga gränser. Jag tycker om att tänka på det som arv, där varje objekt i tabellen delar vissa gemensamma drag (ID, namn), men olika poster kan ha olika drag. Till exempel kan en onlineproduktkatalog innehålla böcker, cyklar och MP3-låtar. Ett rekord för ett "bok" objekt skulle ha saker som ISBN, antal sidor, författare, etc. En "cykel" kan ha hjulstorlek och färg, och en "MP3" skulle ha längd, artist, genre, etc. Du skulle aldrig få alla dessa saker i en "artikel"-tabell i anRDS utan någon allvarlig överbelastning eller lämna fält tomma. ANoSQL-databas skulle tillåta dig att lagra all information i tabellen, och endast för de objekt som behöver den.

Du kan definitivt bygga schemat du inkluderar med din fråga med hjälp av Dynamos indexeringsförmåga, men du skulle försöka få en NoSQL-databas att fungera som en RDS.

Som sagt:själv skulle jag prova det med Dynamo först som en lärandeupplevelse. :)




  1. MySQL SELECT från flera tabeller, flera GROUP BY och group_concat?

  2. Steg för steg uppgraderingsprocess till R12.2 Uppgraderingsdel -2 (Huvuduppgraderingsdrivrutin för R12.2.0)

  3. SQLite JSON_EACH()

  4. join på två främmande nycklar från samma tabell i SQL