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

445
Vistas
Esquema de relación de seguimiento/seguidor de Prisma

Tengo un modelo de usuario y quiero agregar un sistema de seguimiento/seguidores, y para eso creo que necesito crear una tabla separada que se vea así

 id | user_id | follower_id 1 | 20 | 45 2 | 20 | 53 3 | 32 | 20

pero no tengo idea de cómo crear el esquema para eso, lo que he hecho es esto:

 model User { id Int @id @default(autoincrement()) username String Follows Follows[] } model Follows { id Int @id @default(autoincrement()) following_id Int? follower_id Int? user_Following User @relation(fields: [following_id], references: [id]) user_Follower User @relation(fields: [follower_id], references: [id]) }

pero eso por supuesto no funciona y me esta dando error

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esta es la forma en que sugeriría modelar su esquema.

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

Cambios

  1. La tabla de usuario tiene dos campos de relación en lugar de uno.
  2. followerId y followingId se hacen obligatorios. Realmente no tiene sentido tener una Follows de relación de seguimiento cuando ninguno de los dos está ausente. (No puede tener una relación de seguimiento sin un usuario siguiendo y un usuario a seguir).
  3. @@id([followerId, followingId]) Follows la clave principal en la tabla de seguimiento. Un campo de id separado es redundante.
  4. Se cambiaron los nombres de campo a camelCase, que es la convención recomendada en Prisma.

4 es opcional, por supuesto, pero sugeriría seguirlo de todos modos.

Puede encontrar más detalles sobre esto en la subsección de muchos a muchos del artículo de autorreacción en el documento de Prisma.

over 4 years ago · Santiago Trujillo 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