<aside> <img src="/icons/database_blue.svg" alt="/icons/database_blue.svg" width="40px" /> SQL
<aside> <img src="/icons/database_green.svg" alt="/icons/database_green.svg" width="40px" /> No-SQL
Antes que nada, ten en cuenta que Colección y BD es lo mismo para No-SQL.
Por ejemplo, supongamos que tenemos una BD con posts de un usuario.
Así modelariamos una BD No-SQL
Posts: {
title: string,
desc: string,
created_at: Date,
user: {
id: string,
name: string,
avatar: string, //Será una URL
},
Para modelar la BD de usuarios…
Users: {
name: string,
email: string,
password: string,
salt: string, //Para encriptar la contraseña del usuario
}
El problema aquí es que cuando un usuario quiera actualizar su nombre de usaurio, tendremos que modificar toda la BD de posts para actualizar el nombre también…
Para solucionar esto, tenemos dos opciones:
Cuando trabajamos con una BD con muchos datos, se suele usar la paginación, donde mostramos solo unos pocos documentos, 10 por ejemplo y el usuario va solicitando los siguientes 10, y ldespués 10 más, etc.