prisma - 实体货币交易架构设计
问题描述
我正在尝试在两个模型之间创建多对多关系:Entity 和 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
}
推荐阅读
- linux-kernel - 当使用 ACPI 表而不是设备树时,如何为 arm64 内核启动设置 x0 寄存器?
- python - SQLAlchemy 仅 func.rank() 表中 value = x 的行
- html - 使 HTML 表单元素仅在单击时可见
- java - 如何在一个函数中创建条件等待方法?
- javascript - 防止用户在 Vue Js 中有条件地更改复选框值?
- arrays - Qt JSON:如何获取数组元素?
- extjs - Ext js 7 cmd 生产构建失败
- ios - 如何检查数组中是否存在相同的键?
- sql - OracleSQL - 不是单组组功能 - 我需要加入 2 个单独的查询吗?
- java - docker 上的 Spring Boot 应用程序在启动后 4 分钟内使用的 CPU 比其“基线”多,这是否正常?