prisma2 如何关联一对多和多对一?
prisma2 how to relate one-to-many and many-to-one?
我需要一些帮助来了解如何设置我的数据模型化。
我想做的是:
- 在用户模型中引用组 ID。一个用户只能在一个组中,这是我在下面所做的。
- 在群组模型中引用群组内的所有用户。这就是我需要帮助的。
model User {
id String @id @default(uuid())
email String @unique
role Role @default(USER)
group Group? @relation(fields: [group_id], references: [id], onDelete: SetNull)
group_id String
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@map("user")
}
model Group {
id String @id @default(uuid())
name String
users User[]
created_at DateTime @default(now())
updated_at DateTime @updatedAt
deleted Boolean @default(false)
@@map("group")
}
当我已经有用户 User[] 用于 User 模型中的关系时,如何制作这个 User 列表?
(顺便说一句,我已经阅读了文档,但我完全迷路了...)
我认为你的代码是正确的,你可以使用prisma-client来测试
这是这种关系的一个例子
model Agents {
id Int @id @default(autoincrement()) @db.UnsignedInt
name String? @db.VarChar(255)
owner String? @db.VarChar(255)
address String? @db.Text
lat String? @db.VarChar(10)
lng String? @db.VarChar(10)
tel String? @db.VarChar(13)
mobile String? @db.VarChar(11)
workTime String? @db.VarChar(255)
province Provinces @relation(fields: [provinceId], references: [id])
provinceId Int @db.UnsignedInt
createDateTime DateTime @default(now()) @db.Timestamp(0)
updateDateTime DateTime? @db.Timestamp(0)
@@index([provinceId], name: "provinceId")
@@map(name: "agents")
}
model Provinces {
id Int @id @default(autoincrement()) @db.UnsignedInt
name String? @db.VarChar(255)
coords String? @db.Text
createDateTime DateTime @default(now()) @db.Timestamp(0)
updateDateTime DateTime? @db.Timestamp(0)
agents Agents[]
@@map(name: "provinces")
}
我需要一些帮助来了解如何设置我的数据模型化。
我想做的是:
- 在用户模型中引用组 ID。一个用户只能在一个组中,这是我在下面所做的。
- 在群组模型中引用群组内的所有用户。这就是我需要帮助的。
model User {
id String @id @default(uuid())
email String @unique
role Role @default(USER)
group Group? @relation(fields: [group_id], references: [id], onDelete: SetNull)
group_id String
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@map("user")
}
model Group {
id String @id @default(uuid())
name String
users User[]
created_at DateTime @default(now())
updated_at DateTime @updatedAt
deleted Boolean @default(false)
@@map("group")
}
当我已经有用户 User[] 用于 User 模型中的关系时,如何制作这个 User 列表?
(顺便说一句,我已经阅读了文档,但我完全迷路了...)
我认为你的代码是正确的,你可以使用prisma-client来测试
这是这种关系的一个例子
model Agents {
id Int @id @default(autoincrement()) @db.UnsignedInt
name String? @db.VarChar(255)
owner String? @db.VarChar(255)
address String? @db.Text
lat String? @db.VarChar(10)
lng String? @db.VarChar(10)
tel String? @db.VarChar(13)
mobile String? @db.VarChar(11)
workTime String? @db.VarChar(255)
province Provinces @relation(fields: [provinceId], references: [id])
provinceId Int @db.UnsignedInt
createDateTime DateTime @default(now()) @db.Timestamp(0)
updateDateTime DateTime? @db.Timestamp(0)
@@index([provinceId], name: "provinceId")
@@map(name: "agents")
}
model Provinces {
id Int @id @default(autoincrement()) @db.UnsignedInt
name String? @db.VarChar(255)
coords String? @db.Text
createDateTime DateTime @default(now()) @db.Timestamp(0)
updateDateTime DateTime? @db.Timestamp(0)
agents Agents[]
@@map(name: "provinces")
}