Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

359
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda