Skip to content

[lab] different options for snapshot schema #464

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 51 additions & 1 deletion api/prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,43 @@ model UserRepoData {
@@id([userId, repoId])
}

model Snapshot1 {
id String @id
createdAt DateTime @default(now())
yDocBlob Bytes?
Repo Repo @relation(fields: [repoId], references: [id])
repoId String
}

model Blob {
id String @id
updatedAt DateTime @updatedAt
yDocBlob Bytes?
Repo Repo[]
}

model Snapshot {
id String @id
createdAt DateTime @default(now())
message String?
yDocBlob Bytes?
Repo Repo? @relation(fields: [repoId], references: [id])
repoId String?
}

model UnifiedBlob {
id String @id
updatedAt DateTime @updatedAt
createdAt DateTime @default(now())

// FIXME history repo should be one repo, not a list.
yDocBlob Bytes?
history Repo[]

current Repo? @relation("HISTORY", fields: [repoId], references: [id])
repoId String?
}

model Repo {
id String @id
name String?
Expand All @@ -82,7 +119,20 @@ model Repo {
updatedAt DateTime @default(now()) @updatedAt
UserRepoData UserRepoData[]
stargazers User[] @relation("STAR")
yDocBlob Bytes?

// Option 1:
yDocBlob1 Bytes?
yDocSnapshots1 Snapshot1[]

// Option 2:
yDocBlob2 Blob? @relation(fields: [yDocBlob2Id], references: [id])
yDocBlob2Id String?
yDocSnapshots2 Snapshot[]

// Option 3:
yDocBlob3 UnifiedBlob? @relation(fields: [yDocBlob3Id], references: [id])
yDocBlob3Id String?
yDocSnapshots3 UnifiedBlob[] @relation("HISTORY")
}

enum PodType {
Expand Down