#prisma #prisma2
Вопрос:
Мне нужна помощь, чтобы понять, как настроить моделирование данных.
Что я пытаюсь сделать, так это :
- Ссылка на идентификатор группы в модели пользователя. Пользователь может быть только в одной группе, это то, что я сделал ниже.
- Ссылка в модели группы все пользователи, находящиеся в группе. Вот в чем мне нужна помощь.
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[] для связи в модели пользователя ?
(Кстати, я прочитал документ, но я совершенно потерялся…)
Ответ №1:
Я думаю, что ваш код верен, вы можете использовать prisma-клиент для тестирования
Это пример такого отношения
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")
}
Комментарии:
1. Спасибо за ваш ответ, но в моем примере я не понимаю, как я сообщаю модель группы, в которой мне нужен список строк внутри пользователя User[]. Похоже, что эта строка здесь предназначена для ссылки на группу в моих пользователях, но она не предназначена для ссылки на список пользователей в моей группе.
2. Хорошо, я думаю, что начинаю понимать, призма делает это автоматическое отношение, так что мне на самом деле нечего было делать… Я думал, что эта штука была своего рода помощником в создании моих первых отношений. Призма такая умная !
3. Да, prisma очень умна и понятна для понимания, но она очень новая, и ей предстоит очень много работы, чтобы стать лучше