51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# Aturan Penulisan Table dan Kolom (cpone_dashboard)
|
|
|
|
## 1) Penamaan Table
|
|
- Gunakan `snake_case` semua huruf kecil.
|
|
- Gunakan prefix domain bila relevan: `mcu_...`, `dashboard_...`, `published_...`.
|
|
- Nama table harus deskriptif dan konsisten dengan modul data.
|
|
- Contoh benar:
|
|
- `mcu_participant_daily`
|
|
- `mcu_participant_daily_details`
|
|
- `mcu_patient_resume_status`
|
|
|
|
## 2) Penamaan Kolom
|
|
- Gunakan `PascalCase` dengan prefix entitas/tabel.
|
|
- Pola utama:
|
|
- `<EntityPrefix>ID` untuk primary key.
|
|
- `<EntityPrefix><FieldName>` untuk field lain.
|
|
- Hindari nama generik tanpa prefix seperti `IsActive`, `Created`, `LastUpdated`.
|
|
- Contoh benar (table: `mcu_participant_daily_details`):
|
|
- `Mcu_ParticipantDailyDetailsID`
|
|
- `Mcu_ParticipantDailyDetailsParticipantDailyID`
|
|
- `Mcu_ParticipantDailyDetailsMcu_PatientID`
|
|
- `Mcu_ParticipantDailyDetailsIsActive`
|
|
- `Mcu_ParticipantDailyDetailsCreated`
|
|
- `Mcu_ParticipantDailyDetailsLastUpdated`
|
|
|
|
## 3) Kolom Status & Waktu (Standar)
|
|
- Status aktif:
|
|
- `...IsActive CHAR(1) NOT NULL DEFAULT 'Y'`.
|
|
- Waktu buat:
|
|
- `...Created DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP`.
|
|
- Waktu update terakhir:
|
|
- `...LastUpdated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP`.
|
|
|
|
## 4) Key dan Index
|
|
- Primary key wajib pada kolom `...ID`.
|
|
- Tambahkan index pada kolom relasi/filter utama.
|
|
- Nama index gunakan pola jelas:
|
|
- `idx_<field>` untuk index biasa.
|
|
- `uq_<context>` / `uk_<context>` untuk unique key.
|
|
|
|
## 5) Charset/Engine
|
|
- Gunakan:
|
|
- `ENGINE=InnoDB`
|
|
- `DEFAULT CHARSET=utf8mb4`
|
|
|
|
## 6) Checklist Sebelum Buat Migration Baru
|
|
- Pastikan nama table `snake_case`.
|
|
- Pastikan semua kolom pakai prefix entitas (bukan nama generik).
|
|
- Pastikan kolom ID, IsActive, Created, LastUpdated mengikuti standar.
|
|
- Tambahkan index minimal untuk kolom relasi dan kolom filter utama.
|