我有个模特
model image {
id Int @id @default(autoincrement())
entityId Int
entityTypeId Int
imageUrl String
recordStatusRefId Int?
createdBy Int?
createdOn DateTime @default(now())
updatedBy Int?
updatedOn DateTime?
isDeleted Int @default(0)
}
当entityTypeId = 1时,我需要一个entityId到村庄表的关系,当entityTypeId = 2时,我需要将entityIdMap到属性表
这在PRISMA ORM中是可行的吗
我试图定义两个关系,但它得到的错误
1条答案
按热度按时间atmip9wb1#
根据另一个字段的值Map关系目前在Prisma中是不可能的,在我看来,除非它是NoSQL数据库,否则它不在ORM的范围内。
作为一种解决方法,您可以在应用程序层而不是数据库层中处理此问题。我想到了两个解决方案:
1.**推荐方式:**创建2个独立的可选关系字段(e.例如
villageEntityId
和propertyEntityId
)。这样,您必须手动处理创建和更新逻辑,但在调用image
模型时可以轻松地填充查询。1.**不推荐:**创建
entityId
字段,不指定关系,根据您的entityTypeId
值手动调用第二次查询村庄或房产表,获取所需数据。通过这种方式,您基本上是在管理应用程序层中的关系,因此,如果您必须在大型集合中填充数据,那么这并不是很好。