ERD dan skema prisma

This commit is contained in:
2025-05-01 21:53:22 +08:00
parent fdd6331fed
commit fe89ec9a2b
2 changed files with 154 additions and 2 deletions

View File

@@ -1,14 +1,40 @@
@startuml @startuml
entity "timbang"{ entity "timbang"{
* id : number <<generated>> * id : number <<generated>>
* admin_id : number <<FK>>
petani_id : number <<FK>> petani_id : number <<FK>>
kendaraan : text kendaraan : text
waktu : timestamp waktu : timestamp
}
entity "berat"{
* id : number <<generated>>
* penimbang_id : number <<FK>>
* pemilah_id : number <<FK>>
timbang_id : number <<FK>>
waktu : timestamp
kualitas : enum (1,2,sortiran, kendaraan) kualitas : enum (1,2,sortiran, kendaraan)
berat : number berat : number
} }
entity harga_beli {
* id
tanggal : date
created_by : number <<FK>>
harga_kw1 : number
harga_kaw2 : number
harga_kaw3 : number
}
entity "harga_jual"{
* id : number <<generated>>
* admin_id : number <<FK>>
harga : number
tanggal : date
}
entity "petani"{ entity "petani"{
* id : number <<generated>> * id : number <<generated>>
nama : text nama : text
@@ -23,8 +49,41 @@ entity "user"{
nama : text nama : text
} }
entity "role" {} entity "role" {
* id : number <<generated>>
name : text
}
entity user_role {
* id : number <<generated>>
user_id : number <<FK>>
role_id : number <<FK>>
}
entity "authority" {
* authority : text
name : text
}
entity "role_authority" {
* id : number <<generated>>
role_id : number <<FK>>
authority : text <<FK>>
}
user::id ||..o{ user_role::user_id
user_role::role_id }o..|| role::id
role::id ||..o{ role_authority::role_id
role_authority::authority }o..|| authority::authority
user::id ||..|{ timbang::admin_id
timbang::petani_id }o..|| petani::id
timbang::id ||..o{ berat::timbang_id
berat::penimbang_id }o..|| user::id
berat::pemilah_id }o..|| user::id
harga_beli::created_by }o..|| user::id
@enduml @enduml

View File

@@ -6,10 +6,103 @@
generator client { generator client {
provider = "prisma-client-js" provider = "prisma-client-js"
output = "../src/generated/prisma"
} }
datasource db { datasource db {
provider = "postgresql" provider = "postgresql"
url = env("DATABASE_URL") url = env("DATABASE_URL")
} }
model Petani {
id Int @id @default(autoincrement())
nama String?
telp String?
alamat String?
latitude Float?
longitude Float?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
Timbang Timbang[]
}
model Timbang {
id Int @id @default(autoincrement())
petani_id Int
admin_id Int
kendaraan String
waktu DateTime @default(now())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
petani Petani @relation(fields: [petani_id], references: [id])
admin User @relation(fields: [admin_id], references: [id], name: "admin")
Berat Berat[]
}
model Berat {
id Int @id @default(autoincrement())
timbang_id Int
berat Int
kualitas String
waktu DateTime @default(now())
penimbang_id Int
pemilah_id Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
timbang Timbang @relation(fields: [timbang_id], references: [id])
penimbang User @relation(fields: [penimbang_id], references: [id], name: "penimbang")
pemilah User @relation(fields: [pemilah_id], references: [id], name: "pemilah")
}
model User {
id Int @id @default(autoincrement())
username String @unique
password String
nama String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
AdminTimbang Timbang[] @relation(name: "admin")
PenimbangBerat Berat[] @relation(name: "penimbang")
PemilahBerat Berat[] @relation(name: "pemilah")
UserRole UserRole[]
}
model Role {
id Int @id @default(autoincrement())
name String @unique
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
UserRole UserRole[]
RoleAuthority RoleAuthority[]
}
model UserRole {
id Int @id @default(autoincrement())
user_id Int
role_id Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [user_id], references: [id])
role Role @relation(fields: [role_id], references: [id])
}
model Authority {
authority String @id
name String
RoleAuthority RoleAuthority[]
}
model RoleAuthority {
id Int @id @default(autoincrement())
role_id Int
authority String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
role Role @relation(fields: [role_id], references: [id])
auth Authority @relation(fields: [authority], references: [authority])
}