mysql 基于关系的每个实体有一个真值和多个假值

sdnqo3pr  于 2022-12-17  发布在  Mysql
关注(0)|答案(1)|浏览(128)

我在使用Prisma和Nest JS时遇到了一个问题:
我有一个选项列表实体,其中包含可用于前端的不同选项列表。此外,我还有一个选项列表值实体,其中包含每个选项列表可用的值。我当前面临的问题是,每个选项列表只能有一个默认选项列表值,而其他多个值不是默认值。现在,每个选择列表只能有2个选择列表值-一个默认值和一个无默认值。
我怎样才能做到这一点?
选择列表实体:

  1. model Picklist {
  2. id Int @id @default(autoincrement())
  3. createdAt DateTime @default(now())
  4. updatedAt DateTime @updatedAt
  5. picklistName String @db.VarChar(255)
  6. picklistApiName String @db.VarChar(255)
  7. picklistValues PicklistValues[]
  8. @@map("Picklists")
  9. }

选择列表值实体:

  1. model PicklistValues {
  2. id Int @id @default(autoincrement())
  3. createdAt DateTime @default(now())
  4. updatedAt DateTime @updatedAt
  5. value String @db.VarChar(255)
  6. apiName String @db.VarChar(255)
  7. defaultValue Boolean
  8. inactiveValue Boolean
  9. picklistId Int
  10. picklist Picklist @relation(fields: [picklistId], references: [id])
  11. @@unique([picklistId, defaultValue])
  12. }

我知道问题来自@@unique([picklistId, defaultValue]),但我还没有找到解决方案来改变它。

6ojccjat

6ojccjat1#

Prisma目前还不支持创建部分索引。在这方面有一个开放的issue。你也可以在开放的问题中添加你的用例。你也可以创建一个自定义的migration并手动添加部分索引的SQL代码。

相关问题