# 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: - `ID` untuk primary key. - `` 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_` untuk index biasa. - `uq_` / `uk_` 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.