Въпросът е изключително широк, но ще се опитам да отговоря доколкото мога.
По принцип не обичам да отговарям на въпроси като този, защото изглежда, че сте направили много малко проучвания, преди да дойдете в SO. Също така изглежда, че сте объркани с ролите на приложения и база данни. Ще ви започна поне с някои материали/идеи и ще ви оставя да решите сами.
Няма "сребърен куршум" за бекенд дизайн, особено когато става въпрос за бази данни. SQL бази данни като цяло са много добри в повечето функционалности на базата данни и с право; това е технология, която е много зряла и е издържала изпитанието на времето с причина. Повечето NOSQL решения са специализирани за конкретни цели. Например:ако записвате много информация, може да искате да погледнете Касандра. Ако се занимавате с много релационни данни, бихте искали да използвате нещо като Neo4j (или PostgreSQL/MySQL за RMDBS). Ако сте имали работа с много данни в реално време, може да искате да погледнете Redis.
Тъпо е да се пита NOSQL срещу SQL по няколко причини:
NOSQL е лош термин като цяло. И това не означава "Без SQL". Това означава "Не само SQL". За съжаление терминът е капсулирал дори най-полярната противоположност на базите данни.
Само вие знаете пълната функционалност на вашето приложение. Дори и да знаех основите на това, което искаш да постигнеш, пак не бих могъл да ти дам категоричен отговор. Нито може някой друг. Това е силно субективно и отново, само ВИЕ знаете ТОЧНО какво трябва да прави приложението ви.
Най-голямата причина:2014 г. Защо една база данни? Преди десет години „DatabaseX срещу DatabaseY“ щеше да е практически въпрос. Сега можете да конфигурирате много рамки на приложения, за да използвате надеждно множество бази данни за броени минути. Морал на историята:Използвайте всяка база данни за нейната специализирана цел. Повече за устойчивостта на полиглот тук .
Що се отнася до Facebook:петминутно търсене в Google разкрива какви бекенд технологии са използвали в миналото и не е толкова трудно да се проучат някои от настоящите им бекенд решения. Вие не сте Facebook. Не е нужно да се подготвяте за милиард потребители в момента. Започнете с прости, доказани технологии. Това ще ви позволи естествено да мащабирате приложението си. Когато тези технологии започнат да се превръщат в пречка, тогава се притеснявайте за мащабируемостта.
Надявам се, че това ви е помогнало да започнете пътуването си с кодиране, но моля, използвайте Stack Overflow като последна мярка, ако имате проблеми с кода. Не е подходящ за незабавно.