【问题标题】:Prisma2: how to design schema which has relation with Array type Model?Prisma2:如何设计与数组类型模型相关的模式?
【发布时间】:2020-10-24 18:04:48
【问题描述】:

我在设计架构时遇到了一些问题。

案例一:

model User {
  package: @relation(fields: [authorId], references: [id])
  packageId: Int
}

model Package {
  user User[]
}

一个包可以被数百名用户订阅。所以,我认为这是要走的路。但是,问题是,当一个包需要被删除时,用户(管理员)也需要被删除。我们不想要的

案例2:

model User {
  package Package[]
}

model package {
  author      User?  @relation(fields: [authorId], references: [id])
  authorId    Int?
}

通过这种方式设计,当包被删除时,用户并没有被删除。 但我无法将多个用户连接到一个包。

【问题讨论】:

    标签: node.js database database-design graphql prisma2


    【解决方案1】:

    我认为您必须明确地对双方的关系进行建模才能获得many-to-many relationship。毕竟用户可以订阅很多包,包可以有很多用户订阅。

    model User {
      id Int @id @default(autoincrement())
      packages Package[] @relation(references: [id])
    }
    
    model Package {
      id Int @id @default(autoincrement())
      user User[] @relation(references: [id])
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-14
      • 2021-05-04
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多