Skip to content

Instantly share code, notes, and snippets.

@Zeko369
Created April 17, 2024 09:18
Show Gist options
  • Save Zeko369/7ea512a57a7ff095eb50bea55a83c951 to your computer and use it in GitHub Desktop.
Save Zeko369/7ea512a57a7ff095eb50bea55a83c951 to your computer and use it in GitHub Desktop.
model Database {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
slug String @unique
columns DatabaseColumn[] @relation("inDb")
rows DatabaseRow[]
belongsTo User @relation(fields: [belongsToId], references: [id])
belongsToId String
referencedBy DatabaseColumn[] @relation("DatabaseReference")
}
enum DataType {
Int
Float
Boolean
String
RichText
Date
DateTime
Relation
ModelRelation
}
model DatabaseColumn {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
name String
slug String
description String?
type DataType
default String?
isNullable Boolean
isUnique Boolean
isPrimary Boolean
isForeign Boolean
database Database @relation("inDb", fields: [databaseId], references: [id])
databaseId Int
// model reference i.e. Todo
modelType String?
modelId String?
// other database reference
databaseReference Database? @relation("DatabaseReference", fields: [databaseReferenceId], references: [id])
databaseReferenceId Int?
databaseReferenceColumn DatabaseColumn? @relation("DatabaseReferenceColumn", fields: [databaseReferenceColumnId], references: [id])
databaseReferenceColumnId Int?
referencedBy DatabaseColumn[] @relation("DatabaseReferenceColumn")
@@unique([databaseId, slug])
}
model DatabaseRow {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
database Database @relation(fields: [databaseId], references: [id])
databaseId Int
data Json
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment