Estoy creando una API para mi aplicación de clonación de Instagram. Estoy usando una base de datos postgres con knexjs.
Tengo cuatro tablas para mi aplicación, es decir, usuarios, publicaciones y me gusta.
Estoy creando una página de perfil donde se muestra la información del usuario. La página de perfil mostrará información de todas las tablas.
Mi pregunta es si hacer cinco consultas separadas a la base de datos afecta los tiempos de carga de la página de perfil. Realizaré consultas de conteo, grupo por, etc. que no se pueden fusionar o unir.
¿O hay alguna otra alternativa que no afecte el rendimiento o los tiempos de carga?
Aquí está mi código de ruta: -
router.get('/:id', async (req, res) => { const userID = req.params.id; //Get the profile info from the db const profile = await getUserInfo(userID); if (profile.length === 0) { return res.json({ errors: "No user found!" }) } //Get last 9 created post ordered by creation date in DESC order const posts = await getUserPosts(userID) //Get posts count const count = await getUserPostCount(userID) return res.json({ profile: profile[0], posts, postCount: count[0].count }).status(201); })Puede ver que hay tres constantes perfil, publicaciones y recuento que realizan consultas individuales. ¿Está bien?
Mi código fuente completo está aquí: - https://github.com/ajaybirbal/photogram-backend/blob/main/routes/profile.js