【问题标题】:prisma2 how to relate one-to-many and many-to-one?prisma2 如何关联一对多和多对一?
【发布时间】:2021-10-07 08:24:18
【问题描述】:

我需要一些帮助来了解如何设置我的数据建模。

我想做的是:

  • 在用户模型中引用组 ID。一个用户只能在一个组中,这就是我在下面所做的。
  • 在组模型中引用组内的所有用户。这就是我需要帮助的地方。
model User {
  id         String   @id @default(uuid())
  email      String   @unique
  role       Role     @default(USER)
  group      Group?   @relation(fields: [group_id], references: [id], onDelete: SetNull) 
  group_id   String   
  created_at DateTime @default(now())
  updated_at DateTime @updatedAt

  @@map("user")
}

model Group {
  id         String   @id @default(uuid())
  name       String
  users      User[]
  created_at DateTime @default(now())
  updated_at DateTime @updatedAt
  deleted    Boolean  @default(false)

  @@map("group")
}

当我已经有用户 User[] 用于用户模型中的关系时,如何制作此用户列表?

(顺便说一句,我已经阅读了文档,但我完全迷路了......)

【问题讨论】:

    标签: prisma prisma2


    【解决方案1】:

    我认为你的代码是正确的,你可以使用 prisma-client 来测试

    这是这种关系的一个例子

    model Agents {
      id             Int       @id @default(autoincrement()) @db.UnsignedInt
      name           String?   @db.VarChar(255)
      owner          String?   @db.VarChar(255)
      address        String?   @db.Text
      lat            String?   @db.VarChar(10)
      lng            String?   @db.VarChar(10)
      tel            String?   @db.VarChar(13)
      mobile         String?   @db.VarChar(11)
      workTime       String?   @db.VarChar(255)
      province       Provinces @relation(fields: [provinceId], references: [id])
      provinceId     Int       @db.UnsignedInt
      createDateTime DateTime  @default(now()) @db.Timestamp(0)
      updateDateTime DateTime? @db.Timestamp(0)
      @@index([provinceId], name: "provinceId")
      @@map(name: "agents")
    }
    
    
    model Provinces {
      id             Int       @id @default(autoincrement()) @db.UnsignedInt
      name           String?   @db.VarChar(255)
      coords         String?   @db.Text
      createDateTime DateTime  @default(now()) @db.Timestamp(0)
      updateDateTime DateTime? @db.Timestamp(0)
      agents Agents[]
      @@map(name: "provinces")
    }
    

    【讨论】:

    • 感谢您的回答,但在我的示例中,我不明白如何告诉组模型,因为我想要用户 User[] 中的字符串列表。这似乎是为了帮助在我的用户中引用一个组,但它不是用来引用我的组中的用户列表。
    • 好吧,我想我开始明白了,prisma 使这个自动关系,所以我实际上无事可做......我认为这个东西是创建我的第一个关系的一种帮助。 Prisma 太聪明了!
    • 是的,prisma 非常聪明且易于理解,但它非常新,还有很多工作要做才能变得更好
    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 2010-12-16
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 2011-08-29
    相关资源
    最近更新 更多