Nom du fichier : schema.prisma
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Get a free hosted Postgres database in seconds: `npx create-db`
generator client {
provider = "prisma-client"
output = "./generated/prisma"
moduleFormat = "cjs"
}
// Configuration de la base de données
datasource db {
provider = "mysql" // Ou "postgresql", "mysql"
}
// Modèle User = Table 'users' en BDD
model User {
id Int @id @default(autoincrement()) // Clé primaire, auto-incrémentée
email String @unique // Unique en BDD
name String
password String
bio String? // ? = optionnel (peut être null)
address String?
avatar String?
createdAt DateTime @default(now()) // Date de création automatique
updatedAt DateTime @updatedAt // Date de MAJ automatique
}
model Book {
id Int @id @default(autoincrement())
title String
year String
rating Int?
recommendedAge Int?
addedBy Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
author Author[]
illustrator Illustrator? @relation(fields: [illustratorid], references: [id])
illustratorid Int?
value Value[]
theme Theme[]
}
model Value {
id Int @id @default(autoincrement())
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
books Book[]
}
model Theme {
id Int @id @default(autoincrement())
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
books Book[]
}
model Illustrator {
id Int @id @default(autoincrement())
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
books Book[]
}
model Author {
id Int @id @default(autoincrement())
name String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
books Book[]
}
model ChildProfile {
id Int @id @default(autoincrement())
name String
yearOfBirth String
isPublic Boolean
parent Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}