Otázka je extrémně široká, ale pokusím se na ni odpovědět, jak nejlépe umím.
Obecně nerad odpovídám na podobné otázky, protože to vypadá, jako byste před příchodem na SO provedli velmi málo průzkumu. Zdá se také, že jste si pletli role aplikací a databáze. Začnu vás alespoň nějakým materiálem/nápady a nechám vás, abyste se rozhodli sami.
Pro design backendu neexistuje žádná „stříbrná kulka“, zvláště pokud jde o databáze. SQL databáze jsou obecně velmi dobré ve většině databázových funkcí, a to právem; je to technologie, která je velmi vyspělá a z nějakého důvodu obstála ve zkoušce časem. Většina řešení NOSQL se specializuje na konkrétní účely. Například:pokud jste zaznamenávali mnoho informací, možná byste se chtěli podívat na Cassandru. Pokud byste se zabývali velkým množstvím relačních dat, chtěli byste použít něco jako Neo4j (nebo PostgreSQL/MySQL pro RMDBS). Pokud jste pracovali s velkým množstvím dat v reálném čase, možná byste se chtěli podívat na Redis.
Je hloupé ptát se NOSQL vs SQL z několika důvodů:
NOSQL je obecně špatný termín. A neznamená to "Žádné SQL". Znamená to „Nejen SQL“. Bohužel tento termín zapouzdřil i ten nejpolární opak databází.
Pouze vy znáte plnou funkčnost své aplikace. I kdybych znal základy toho, čeho chcete dosáhnout, stejně bych vám nemohl dát definitivní odpověď. Ani nikdo jiný nemůže. Je to vysoce subjektivní a opět jen VY víte PŘESNĚ, co by vaše aplikace měla dělat.
Největší důvod:Je rok 2014. Proč jedna databáze? Před deseti lety by „DatabaseX vs DatabaseY“ byla praktická otázka. Nyní můžete nakonfigurovat mnoho aplikačních rámců pro spolehlivé používání více databází během několika minut. Morálka příběhu:Použijte každou databázi pro její specializovaný účel. Více o perzistenci polyglotů zde .
Pokud jde o Facebook:pětiminutové vyhledávání Google odhalí, jaké backendové technologie používali v minulosti, a není tak těžké prozkoumat některá jejich aktuální backendová řešení. Vy nejste Facebook. Nemusíte se hned připravovat na miliardu uživatelů. Začněte s jednoduchými, osvědčenými technologiemi. To vám umožní přirozeně škálovat vaši aplikaci. Když se tyto technologie začnou stávat úzkým hrdlem, pak se obávejte o škálovatelnost.
Doufám, že vám to pomohlo na začátku vaší kódovací cesty, ale pokud máte problémy s kódem, použijte Stack Overflow jako poslední možnost. Není to okamžitý přechod.