【问题标题】:Multiple relations between models模型之间的多重关系
【发布时间】:2021-01-24 22:00:14
【问题描述】:

我很难理解如何在两个模型之间建立多重关系。采取以下措施:

model User {
  id             Int       @default(autoincrement()) @id
  goalBoard      GoalBoard[]
  ...
}

model GoalBoard {
  id          Int         @default(autoincrement()) @id
  goalOwner   User        @relation(fields: [goalOwnerId], references: [id])
  goalOwnerId Int
  invitee     User[]      @relation(name: "invitee") //?
  invited     User[]      @relation(name: "invited") //?
  ...
  @@unique([goalOwnerId, active])
}

“受邀者”和“受邀者”字段将包含多个用户。我不清楚将name 添加到@relation 的需要/要求。

所以,为了理解起见,命名@relation 的目的是什么。其次,我将如何按照上述要求建立关系。

谢谢。

【问题讨论】:

    标签: javascript database relationship prisma prisma2


    【解决方案1】:

    这是处理多个多对多关系的正确且清晰的方法

    model User {
      id               Int         @default(autoincrement()) @id
      goalBoardInvitee GoalBoard[] @relation(name: "UserGoalBoardInvitee")
      goalBoardInvited GoalBoard[] @relation(name: "UserGoalBoardInvited")
      ...
    }
    
    model GoalBoard {
      id          Int         @default(autoincrement()) @id
      goalOwner   User        @relation(fields: [goalOwnerId], references: [id])
      goalOwnerId Int
      invitee     User[]      @relation(name: "UserGoalBoardInvitee") //?
      invited     User[]      @relation(name: "UserGoalBoardInvited") //?
      ...
      @@unique([goalOwnerId, active])
    }
    

    要了解我们为什么这样做,请阅读Prisma relations docs

    【讨论】:

    • 非常感谢您,一如既往地感谢艾哈迈德。最后,这对我来说很有意义。干杯。
    • 有什么原因让您没有将我的答案标记为正确答案?
    • 我想实现它以确保我没有任何进一步的问题。我现在要实现和测试逻辑。所以希望尽快标记出来。再次感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2018-05-23
    相关资源
    最近更新 更多