Witam,
tworzę bazę danych z pomocą Prisma i napotkałem na problem. Mam 2 modele: User i Lesson. W Lesson przechowuję identyfikatory użytkowników, którzy wzięli w niej udział, oraz identyfikator trenera, który również jest modelem User. Chciałbym pobierając Lesson móc od razu dostać użytkowników, którzy wzięli w niej udział i trenera, jednak nie ich identyfikatory, a dane całego użytkownika.
Wiem, że potrzebuję relacji, jednak nie potrafię ich stworzyć.
Mój schema.prisma
:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
}
enum LessonState {
ACTIVE
CLOSED
}
model Lesson {
id String @id @default(uuid()) @map("_id") @db.Uuid
date DateTime @default(now())
subject String
description String
state LessonState @default(ACTIVE)
usersIds String[] @db.Uuid
coachId String @unique @db.Uuid
}
enum UserRoles {
ADMIN
USER
}
model User {
id String @id @default(uuid()) @map("_id") @db.Uuid
name String
surname String
password String
login String @unique
birthDate DateTime
role UserRoles @default(USER)
createdAt DateTime @default(now())
}
Zależy mi na relacjach jednokierunkowych, jednak z tego, co się doszukałem, Prisma nie zezwala na takie, więc jeśli trzeba mogą być dwukierunkowe. Jeśli chodzi o wybór postgresql
jest on można powiedzieć losowy - jeśli jakiś inny system pozwala zrobić to, czego potrzebuję mogę na niego przejść. To samo odnosi się do Prisma - mogę użyć innego ORM jeśli obsługuje to, czego potrzebuję.