Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

160
Views
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

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

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

 model User { id String @id @default(autoincrement()) username String followers Follows[] @relation("following") following Follows[] @relation("follower") } 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.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!