Estoy aprendiendo el desarrollo del backend, ¿cómo debo elegir entre NoSQL y la base de datos SQL para un proyecto?

Recomiendo que comience aprendiendo cómo programar en una base de datos SQL primero dado que es nuevo en el desarrollo de backend. La razón de mi recomendación es que existe un gran conocimiento sobre cómo desarrollar alrededor de bases de datos SQL, e incluso con el movimiento NoSQL, las bases de datos SQL como PostgreSQL, MySQL y Microsoft SQL Server son sólidas. Hay una razón por la cual el modelo relacional ha prosperado y sobrevivido durante tanto tiempo.

Mi opinión no pretende menospreciar las bases de datos NoSQL, pero es mejor dejarlas para cuando esté más avanzado y comprenda los beneficios y las desventajas de ambos tipos de arquitecturas. Pero con las bases de datos SQL, también se obtiene mucho de forma gratuita al usar marcos como Ruby on Rails, .NET o incluso Elixir / Phoenix. No tengo ninguna estadística que me respalde, pero cuando vaya a buscar trabajo, en mi sincera opinión, encontrará más empresas que todavía usan bases de datos SQL que NoSQL.

La mayoría de los proyectos pueden usar una base de datos SQL. Los sitios web y las aplicaciones web los usan con frecuencia. Cualquier cosa que implique la entrada de datos o códigos que puedan beneficiarse de las transacciones. También diría en muchos casos que la mayoría de las cosas que puedo hacer con una base de datos SQL, también puedo hacerlo con una base de datos NoSQL, pero depende. Las bases de datos SQL le brindan características como combinaciones que son más difíciles de hacer con algunas bases de datos NoSQL. Las bases de datos NoSQL son probablemente mejores cuando el esquema de los objetos / documentos es más inestable. Las bases de datos SQL requieren un esquema estable en la mayoría de los casos. Puede alterar los esquemas con el tiempo en las bases de datos SQL, pero hacerlo tiene un costo.

Si los datos que está almacenando se relacionan entre sí de alguna manera, sugeriría SQL. Sin embargo, muchos proyectos pequeños se pueden implementar fácilmente con NoSQL si solo estás buscando aprender.