05_ChangeModel

Code-Dateien

DateinameAktion
CODECode_bank.zipDownload
CODECode_pizza.zipDownload
CODECode_student.zipDownload

Videos

DateinameAktion
VIDEOVideo_Bank_DAbspielen
VIDEOVideo_Pizza_EAbspielen

Lernmaterialien

Change datamodel

001.png
model Student {
  id     Int    @id @default(autoincrement())
  name   String
  course String
  email  String @unique
}
002.png
003.png

NULL und UNIQUE

In einem Prisma schema bedeutet

email String? @unique

zwei Dinge:

String?

Das ? heißt: optional / nullable.
Also: email darf NULL sein (z. B. Nutzer ohne E-Mail).

Im generierten Prisma Client wird daraus typischerweise ein Typ wie:

  • email: string | null (bzw. optional beim Create-Input)

@unique

@unique heißt: eindeutig, d. h. es wird ein UNIQUE-Constraint/Index in der DB angelegt.

Wichtiges Detail (z. B. in Postgres):

  • @unique erlaubt mehrere NULL-Werte, weil NULL != NULL gilt.

    • Also: Viele Datensätze dürfen email = NULL haben,

    • aber sobald eine E-Mail gesetzt ist, darf sie nicht doppelt vorkommen.

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client"
  runtime = "deno"
  output = "./generated"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Student {
  id     Int     @id @default(autoincrement())
  name   String
  course String
  email  String? @unique
}
004.png
007.png
006.png