Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

355
Vistas
¿Cómo consultar/actualizar una autorrelación en Prisma?

Tengo algunas tablas de autorrelación tomadas directamente de uno de los ejemplos de Prisma.

 model User { id Int @id @default(autoincrement()) name String? followedBy Follows[] @relation("follower") following Follows[] @relation("following") } model Follows { follower User @relation("follower", fields: [followerId], references: [id]) followerId Int following User @relation("following", fields: [followingId], references: [id]) followingId Int @@id([followerId, followingId]) }

Me pregunto cuál es la forma mejor/más idiomática de determinar si un usuario está siguiendo a otro usuario, así como las operaciones para seguir y dejar de seguir. Estoy pensando que la mejor manera es simplemente consultar/actualizar la tabla de seguimientos directamente, pero no estoy seguro de si los campos seguidos por y siguientes en el modelo de usuario se actualizarán automáticamente.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Considere este ejemplo:

  1. Creando un usuario:
 const createUsers = await prisma.user.createMany({ data: [ { name: 'user1', }, { name: 'user2', }, { name: 'user3', }, ], });
  1. Definición sigue relación
 const followUsers = await prisma.follows.createMany({ data: [ { followerId: 1, followingId: 2, }, { followerId: 1, followingId: 3, }, { followerId: 2, followingId: 3, }, ], });
  1. Para obtener quiénes son los seguidores del usuario 1, se puede lograr a través del modelo de usuario, así como del siguiente modelo, como se describe a continuación:
 const findFollowersThroughUser = await prisma.socialUser.findMany({ where: { following: { some: { followerId: 1, }, }, }, }); console.log('findFollowersThroughUser', findFollowersThroughUser); const findFollowersThroughFollow = await prisma.follows.findMany({ where: { followerId: 1, }, include: { following: true, }, }); console.log('findFollowersThroughFollow', findFollowersThroughFollow);

Aquí está la salida:

 findFollowersThroughUser [ { id: 2, name: 'user2' }, { id: 3, name: 'user3' } ] findFollowersThroughFollow [ { followerId: 1, followingId: 2, following: { id: 2, name: 'user2' } }, { followerId: 1, followingId: 3, following: { id: 3, name: 'user3' } } ]

Para actualizar las relaciones cuando alguien deja de seguir, el registro debe eliminarse explícitamente de la follows tabla en este caso.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda