简体   繁体   中英

Can I map two columns in a one-to-many relationship in Prisma?

I'm trying to create a prisma schema, where I have an Order model, and a Client model. I would like to have a one-to-many relation between clients and orders.

I have it working with this Order model:

clientId     Client            @relation(fields: [clientId], references: [id])
clientId     Int

But wanted to also include the client name. Something like this doesn't work:

client       Client            @relation(fields: [clientName, clientId], references: [name, id])
clientName   String
clientId     Int

This gives me the error

Error validating: The argument `references` must refer to a unique criteria in the related model `Client`. But it is referencing the following fields that are not a unique criteria: name, id

Is this something that is possible within the Prisma schema? I can do it with my controller in NestJS, but ideally I would want to be done in the Prisma layer.

I solved this by adding a @@unique([name, id]) constraint on the Client model. However, I'm not sure if this is the correct or best way to do this.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM