17. Skema Basis Data & Prisma ORM

Ringkasan

Layer basis data dikelola menggunakan Prisma ORM yang terhubung ke server MySQL.


Diagram Relasi Entitas (ERD)

mermaid
erDiagram
    User ||--o{ Account : "memiliki"
    User ||--o{ Session : "memiliki"
    User }|--|| Role : "memiliki peran"
    User ||--o{ AuditLog : "mencatat"
    Role ||--o{ RolePermission : "memiliki izin"
    Permission ||--o{ RolePermission : "dihubungkan ke"

    User {
        string id PK
        string name
        string email UK
        string passwordHash
        string salt
        string roleId FK
        datetime createdAt
    }

    Role {
        string id PK
        string name UK
        string description
        string color
    }

    Permission {
        string id PK
        string name UK
        string description
        string module
    }

    AppSettings {
        string id PK
        string appName
        string primaryColor
        boolean landingPageEnabled
    }

    AuditLog {
        string id PK
        string userId FK
        string action
        string module
        string details
        string ipAddress
        datetime createdAt
    }

Berkas Terkait

  • prisma/schema.prisma — Definisi skema model database Prisma
  • prisma/seed.ts — Script seeding data awal database
  • src/server/db.ts — Pembungkus Prisma Client instance