[英]How to only foreign key in Prisma not the whole object
我刚刚开始学习 nestjs,我使用 Prisma 作为我的 ORM,我创建了两个模型(员工、客户),这些模型将包含外键,客户将拥有员工 ID,反之亦然(一个 -一对一关系),但正如您将在模型中看到的那样,员工将包含整个客户“对象”,但我还想要的是他的客户 ID 作为一个独立的列:
这是模型:
model Employe {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updated DateTime @updatedAt
email String @unique
hash String
nom String
prenom String
// I want the client ID here too
client Client?
@@map("employes")
}
model Client {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updated DateTime @updatedAt
email String @unique
hash String
nom String
prenom String
EmpId Int? @unique
emp Employe? @relation(fields: [EmpId], references: [id], onDelete: Cascade, onUpdate: Cascade)
@@map("clients")
}
那么有什么办法吗?
我或多或少明白你的意思。 我不明白你为什么不设置关系,但你可以在创建客户或雇员时使用这种结构。
创造就业
await prisma.employe.create({
data: {
email: 'blabla',
hash: 'balbla',
nom: 'blabla',
prenom: 'balbla',
clientId: 123,
include: {
client: {
...,
}
}
},
})
创建客户端
await prisma.client.create({
data: {
email: 'blabla',
hash: 'balbla',
nom: 'blabla',
prenom: 'balbla',
employeId: 123,
include: {
employe: {
...,
}
}
},
})
client
model 和 Employe model 中的emp
字段是关系字段,因此它们不会存在于数据库中,它们只是在 prisma 级别。
您只需要在关系的一侧定义外键 - 一对一关系 Prisma 参考
您也可以将 clientId 存储在 Employe model 上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.