ERD dan skema prisma
This commit is contained in:
61
ERD.puml
61
ERD.puml
@@ -1,14 +1,40 @@
|
||||
@startuml
|
||||
|
||||
|
||||
entity "timbang"{
|
||||
* id : number <<generated>>
|
||||
* admin_id : number <<FK>>
|
||||
petani_id : number <<FK>>
|
||||
kendaraan : text
|
||||
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)
|
||||
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"{
|
||||
* id : number <<generated>>
|
||||
nama : text
|
||||
@@ -23,8 +49,41 @@ entity "user"{
|
||||
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
|
||||
@@ -6,10 +6,103 @@
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
output = "../src/generated/prisma"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "postgresql"
|
||||
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])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user