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

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

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

model Picklist {
  id Int @id @default(autoincrement())

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  picklistName    String @db.VarChar(255)
  picklistApiName String @db.VarChar(255)

  picklistValues PicklistValues[]

  @@map("Picklists")
}

选择列表值实体:

model PicklistValues {
  id Int @id @default(autoincrement())

  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  value         String  @db.VarChar(255)
  apiName       String  @db.VarChar(255)
  defaultValue  Boolean
  inactiveValue Boolean

  picklistId Int

  picklist      Picklist @relation(fields: [picklistId], references: [id])

  @@unique([picklistId, defaultValue])
}

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

6ojccjat

6ojccjat1#

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

相关问题