实体货币交易架构设计

问题描述

我正在尝试在两个模型之间建立多对多关系:实体模型和Taransaction


model Entity {
  id String @id @default(cuid())
  name String

  purchases Transactions[] // references the source field on Transaction
  sales Transaction[] // references the destination field on Transaction
}

model Transaction {
  source Entity
  destination Entity
  amount Float
  date DateTime @default(Now())
}

我想要的是能够检索指向交易来源的所有实体购买和指向交易目的地的所有实体销售。

我的问题是,使用prisma 2时,这种关系的模式将是什么样?

解决方法

您能尝试一下吗?

model Entity {
  id   String @id @default(cuid())
  name String

  purchases Transact[] @relation("purchases")
  sales     Transact[] @relation("sales")
}

model Transact {
  id            String   @id @default(cuid())
  source        Entity   @relation("purchases",fields: [sourceId],references: [id])
  destination   Entity   @relation("sales",fields: [destinationId],references: [id])
  amount        Float
  date          DateTime @default(now())
  sourceId      String
  destinationId String
}