Udělal jsem hodně s relačními databázemi a trochu s databázemi NoSQL (to jen abyste věděli, odkud pocházím). IMHO databáze NoSQL jsou nejvhodnější pro scénáře, kde platí jedna nebo více:
- Data jsou v podstatě plochá (ne mnoho vztahů, skoro jako starý plochý soubor)
- Existuje jednoznačný záznam typu „nadřazený“ s „dítě“ záznamy, které jsou dostatečně malé/k nimž rodič přistupuje dostatečně často, aby bylo možné je vložit přímo do záznamu.
- Potřebujete volnost při přidávání/vyplňování polí v rozumné míře. Rád přemýšlím o podobném dědictví, kde každá položka v tabulce sdílí některé společné rysy (ID, jméno), ale různé záznamy mohou mít odlišné rysy. Například online katalog produktů může obsahovat knihy, kola a skladby ve formátu MP3. Záznam pro položku „knihy“ by měl věci jako ISBN, počet stránek, autora atd. „Kolo“ může mít velikost a barvu kola a „MP3“ může mít délku, interpreta, žánr atd. Nikdy byste nezískali všechny tyto věci v tabulce „položky“ v anRDS bez vážného přetížení nebo ponechání prázdných polí. Databáze ANoSQL by vám umožnila uložit všechny tyto informace do tabulky a pouze pro položky, které to potřebují.
Schéma, které zahrnete do své otázky, můžete určitě vytvořit pomocí indexovacích schopností Dynama, ale snažili byste se, aby databáze NoSQL fungovala jako RDS.
To znamená:Sám bych to nejprve zkusil s Dynamem jako studijní zkušenost. :)