Lapisan data mentah

Lihat dataset sumber untuk entitas bisnis, telemetri perangkat, dan aset/inventaris, serta tabel utama dan waktu pembaruannya.

Layer Data Mentah berisi 3 skema data yang berbeda, masing-masing melayani aspek berbeda dari platform telematika dan intelijen bisnis:

  • raw_business_data - berisi tabel, atribut, dan nilai yang terkait dengan informasi bisnis, seperti kendaraan, karyawan, geofence yang ditambahkan oleh pengguna, dll.

  • raw_telematics_data - berisi tabel, atribut, dan nilai yang terkait dengan data telematika yang dikirim dari perangkat yang dipantau, seperti lokasi, input, output, dan peristiwa.

  • repo - berisi tabel untuk manajemen aset dan inventaris, termasuk tipe aset yang dapat dikonfigurasi, bidang kustom, hubungan aset, dan data geospasial untuk pelacakan sumber daya organisasi.

Setiap skema dioptimalkan untuk domain data dan pola akses spesifiknya, memberikan cakupan komprehensif untuk kebutuhan operasional, telematik, dan manajemen aset.

raw_business_data struktur

Skema ini berisi 40+ tabel yang dipilih dengan cermat untuk mencakup berbagai aspek bisnis dan kasus penggunaan. Tabel-tabel ini merepresentasikan entitas bisnis inti Anda, struktur organisasi, dan data operasional.

circle-info

Diagram interaktif skema raw_business_data tersedia di dbdiagram.io: https://dbdiagram.io/d/V3-bronze-layer-68ecfd1c2e68d21b4131089aarrow-up-right

Temukan detail skema data bisnis mentah di bawah ini.

Frekuensi pembaruan

Data dalam skema ini disinkronkan dengan DB inti. Pembaruan terjadi secara inkremental ketika perubahan terjadi di database MySQL sumber, biasanya kurang dari 5 menit sejak perubahan sumber.

description_parameters

Sistem mencakup data referensi untuk menstandarkan nilai di seluruh basis data:

Tipe referensi
Deskripsi
Contoh nilai

Definisi tipe

Tipe entitas standar

vehicle_type: car, truck, bus

Kode status

Nilai status tugas dan sistem

tasks_status: unassigned, assigned, done

Definisi satuan

Satuan pengukuran untuk sensor

units_type: liter, gallon, celsius

Klasifikasi entitas

Kategori entitas bisnis

entities_type: place, task, customer

Tabel kunci menurut kategori

Tabel dalam raw_business_data skema diorganisasikan ke dalam kategori fungsional untuk mempermudah navigasi. Tabel di bawah merangkum tabel kunci berdasarkan tujuan bisnis mereka:

Entitas bisnis inti

chevron-rightusershashtag

Deskripsi: Akun pengguna yang berisi informasi profil, afiliasi perusahaan, pengaturan lokalisasi (zona waktu, locale), dan hubungan hierarkis melalui master_id untuk struktur akun bertingkat

Atribut
Rincian

Bidang kunci

- user_id - Pengidentifikasi unik pengguna - company_label - Nama perusahaan yang terkait dengan pengguna - first_name - Nama pengguna - last_name - Nama belakang pengguna - middle_name - Nama tengah/patronimik pengguna - locale - Pengaturan bahasa pengguna - timezone_label - Zona waktu dalam format IANA - master_id - ID pengguna utama (jika yang sekarang adalah bawahan) - registration_datetime - Tanggal pendaftaran dalam sistem - birth_date - Tanggal lahir pengguna

Hubungan

Pengguna induk melalui master_id, terhubung ke employees, departments, places, tasks melalui user_id

Catatan khusus

Entitas pusat yang menghubungkan data organisasi; master_id memungkinkan hierarki pengguna untuk struktur akun bertingkat

chevron-rightemployeeshashtag

Deskripsi: Catatan karyawan dan pengemudi yang digunakan untuk merepresentasikan orang yang bekerja untuk organisasi, termasuk informasi pribadi, detail lisensi, penugasan departemen, kunci perangkat keras untuk identifikasi iButton/RFID, dan data lokasi dengan dukungan geofencing

Atribut
Rincian

Bidang kunci

- employee_id - Pengidentifikasi entitas karyawan - user_id - Pengidentifikasi entitas pengguna - object_id - Pengidentifikasi entitas objek - department_id - ID departemen tempat karyawan ditugaskan - first_name - Atribut first_name dari tabel employees - last_name - Atribut last_name dari tabel employees - middle_name - Atribut middle_name dari tabel employees - driver_license_number - Nomor SIM pengemudi - driver_license_categories - Kategori lisensi pengemudi - driver_license_issue_date - Tanggal penerbitan lisensi mengemudi - driver_license_valid_till - Tanggal hingga lisensi mengemudi berlaku - hardware_key - Kunci perangkat keras - email - Email karyawan - phone_number - Nomor telepon karyawan tanpa tanda "+" - address - Alamat lokasi - personnel_number - Nomor personel karyawan/pengemudi - citizen_id_number - Nomor identitas nasional - latitude - Lokasi yang terkait dengan karyawan ini - longitude - Lokasi yang terkait dengan karyawan ini - radius - Lokasi yang terkait dengan karyawan ini dalam meter - fuel_consumption - Atribut fuel_consumption dari tabel employees - fuel_cost - Atribut fuel_cost dari tabel employees - is_deleted - Atribut is_deleted dari tabel employees

Hubungan

Tautan ke users, departments, objects (pelacak yang ditugaskan), dilacak di driver_history dan checkins

Catatan khusus

Kunci perangkat keras memungkinkan identifikasi pengemudi melalui iButton atau RFID; mendukung geofencing dengan latitude, longitude, radius fields

chevron-rightdepartmentshashtag

Deskripsi: Unit organisasi dengan data lokasi geografis (latitude, longitude, radius) yang memungkinkan analitik berbasis geofence untuk pelaporan tingkat departemen dan asosiasi lokasi karyawan

Atribut
Rincian

Bidang kunci

- department_id - Pengidentifikasi entitas departemen - user_id - Pengidentifikasi entitas pengguna - department_label - Atribut department_label dari tabel departments - latitude - Lokasi yang terkait dengan departemen ini - longitude - Lokasi yang terkait dengan departemen ini - radius - Ukuran geolokasi dalam meter - address - Atribut address dari tabel departments

Hubungan

Menghubungkan karyawan ke struktur organisasi melalui department_id

Catatan khusus

Kolom lokasi mendukung analitik berbasis geofence untuk pelaporan tingkat departemen

Pelacakan dan pemantauan

chevron-rightdeviceshashtag

Deskripsi: Daftar perangkat pelacakan fisik dengan pengenal perangkat keras (IMEI), informasi kartu SIM, status konektivitas jaringan (kekuatan sinyal, roaming, operator), dan penugasan daftar status untuk manajemen siklus hidup perangkat

Atribut
Rincian

Bidang kunci

- device_id - ID perangkat - owner_id - ID pemilik perangkat di akun yang menambahkan beacon - device_imei - IMEI perangkat - phone - Nomor kartu SIM perangkat - status_listing_id - ID Status Perangkat - network_label - Nama jaringan tempat kartu SIM terhubung - signal_level - Kekuatan sinyal perangkat - has_roaming - Flag ketersediaan roaming - is_sim_blocked - Flag penguncian SIM - created_at - Tanggal dan waktu entri dibuat

Hubungan

Entitas inti yang menautkan ke objects, models, sensor_description, counters; owner_id references users.user_id

Catatan khusus

Semua data telematik di raw_telematics_data skema merujuk tabel ini melalui device_id

chevron-rightobjectshashtag

Deskripsi: Daftar pusat entitas yang dipantau (kendaraan, aset, personel) yang menautkan perangkat fisik ke struktur organisasi melalui client_id dan group_id, mewakili "unit yang dapat dilacak" dengan satu objek aktif per perangkat

Atribut
Rincian

Bidang kunci

- object_id - Pengidentifikasi entitas objek - client_id - Pengidentifikasi entitas klien - device_id - Pengidentifikasi entitas perangkat - object_label - Nama objek - model - Model perangkat - group_id - ID grup entitas - create_datetime - Tanggal dan waktu pembuatan baris baru di server - is_deleted - Atribut is_deleted dari tabel objects - is_clone - Tanda klon

Hubungan

Hub pusat yang menghubungkan perangkat ke pengguna (client_id), detail kendaraan, riwayat pelacakan, tugas, dan aturan

Catatan khusus

Mewakili "unit yang dapat dilacak" dalam sistem; satu objek per perangkat yang sedang digunakan aktif

chevron-rightmodelshashtag

Deskripsi: Daftar pusat entitas yang dipantau (kendaraan, aset, personel) yang menautkan perangkat fisik ke struktur organisasi melalui client_id dan group_id, mewakili "unit yang dapat dilacak" dengan satu objek aktif per perangkat

Atribut
Rincian

Bidang kunci

- model_id - Pengidentifikasi model entitas - model - Atribut model dari tabel models - vendor - Nama perusahaan yang merilis pelacak - alternative_label - Atribut alternative_label dari tabel models - analog_amount - Jumlah input analog pada pelacak - digital_amount - Jumlah input diskrit pada pelacak - outputs_amount - Jumlah output diskrit pelacak - has_battery_level - Menentukan apakah pelacak mengirimkan pembacaan daya baterai - has_altitude - Menentukan apakah pelacak mengirimkan ketinggian - has_phone - Apakah ada kartu SIM? - has_gsm_level - Dapatkah pelacak mengirimkan kekuatan sinyal GSM? - has_gsm_name - Dapatkah pelacak mengirimkan nama jaringan GSM atau kode operator (MCC + MNC)? - has_gsm_roaming - Dapatkah pelacak mengirimkan status roaming? - has_detach_button - Apakah pelacak memiliki sensor pelepasan? - type_output_control - Profil Kontrol Output Pelacak - type_special_control - Berisi pengaturan khusus dan modul fungsional untuk model perangkat tertentu, seperti mode berkendara berbahaya (hbm_telfm) untuk Teltonika - is_clone - Apakah model merupakan klon dari model lain?

Konten

Flag kemampuan boolean menunjukkan bidang data mana yang tersedia dari tipe perangkat ini

Catatan khusus

Gunakan flag kemampuan untuk menentukan sensor dan input yang valid saat mengambil data telematik

chevron-rightsensor_descriptionhashtag

Deskripsi: Konfigurasi sensor komprehensif yang menautkan input perangkat ke logika bisnis, termasuk pemetaan input, satuan pengukuran, faktor konversi (pengali/pembagi), tabel kalibrasi untuk sensor bahan bakar, ambang akurasi, dan logika pengelompokan untuk pembacaan sensor teragregasi

Atribut
Rincian

Bidang kunci

- sensor_id - Pengidentifikasi entitas sensor - device_id - Pengidentifikasi entitas perangkat - sensor_label - Nama sensor untuk antarmuka pengguna - input_label - Nama bidang pesan (atribut) dari mana data sensor diambil. Jika sama dengan "input_status," itu adalah sensor diskrit - sensor_type - Tipe sensor - units_type - Satuan pengukuran - multiplier - Pengali - angka yang digunakan untuk mengalikan nilai bidang. Hanya untuk sensor pengukuran - divider - Pembagi - angka yang digunakan untuk membagi nilai bidang. Hanya untuk sensor pengukuran - accuracy - Persentase yang ditentukan untuk menghitung kesalahan absolut volume tangki. Kesalahan ini digunakan untuk menentukan kapan terjadi pengisian ulang atau pengosongan. Ini hanya digunakan untuk sensor bahan bakar - calibration_data - Atribut calibration_data dari tabel sensor_description - input_id - Nomor input untuk sensor diskrit - group_id - Sensor dengan tipe sama yang memiliki group_id dan source_id yang sama dianggap termasuk dalam grup yang sama. Data mereka dijumlahkan atau dirata-rata, tergantung pada nilai group_type. Ini diperlukan untuk sensor teragregasi. Digunakan pada sensor pengukuran - group_type - 0 - jumlahkan nilai sensor dalam sebuah grup, 1 - rata-rata - sensor_units - Nama satuan yang dimasukkan pengguna jika units_type=0 (kustom) - parameters - Objek opsional dengan parameter tambahan parent_ids - array opsional dari parent_ids untuk sensor komposit. volume - double. Opsional. Volume untuk sensor komposit. parent_ids - opsional. array int. Array parent_ids untuk sensor komposit. volume - opsional. Double. Volume untuk sensor komposit. min - opsional. Double. Nilai mentah minimum yang dapat diterima untuk sensor. max - opsional. Double. Nilai mentah maksimum yang dapat diterima untuk sensor. max_lowering_by_time - opsional. Double. Penurunan nilai maksimal yang diizinkan per jam. max_lowering_by_mileage - opsional. Double. Penurunan nilai maksimal yang diizinkan per 100 km. ignore_drains_in_move - opsional. Boolean. Default adalah false. Jika true, pengosongan bahan bakar tidak akan terdeteksi selama pergerakan. ignore_refuels_in_move - opsional. Boolean. Default adalah false. Jika true, pengisian ulang tidak akan terdeteksi selama pergerakan. refuel_gap_minutes - opsional. Integer. Default adalah 5. Waktu dalam menit setelah mulai pergerakan, pengisian ulang akan terdeteksi selama pergerakan. custom_field_name - opsional. Boolean. Default false. Parameter menentukan apakah field input_name adalah nilai kustom yang dimasukkan oleh pengguna. Ini hanya masuk akal jika model pelacak memiliki fitur has_custom_fields

Hubungan

Menautkan input perangkat (dari raw_telematics_data.inputs) ke logika bisnis melalui device_id dan input_label matching

Catatan khusus

calibration_data (JSONB) menyimpan tabel kalibrasi khusus sensor untuk sensor level bahan bakar; multiplier dan divider mengonversi nilai mentah ke satuan

Manajemen aset

chevron-rightvehicleshashtag

Deskripsi: Daftar kendaraan komprehensif yang berisi spesifikasi (dimensi, berat, kapasitas), dokumentasi (VIN, registrasi, asuransi), parameter operasional (konsumsi bahan bakar, volume tangki), dan penugasan pelacak saat ini melalui object_id untuk manajemen armada dan pelacakan kepatuhan

Atribut
Rincian

Bidang kunci

- vehicle_id - Pengidentifikasi entitas kendaraan - user_id - Pengidentifikasi entitas pengguna - object_id - Pengidentifikasi entitas objek - garage_id - Pengidentifikasi entitas garasi - vehicle_label - Atribut vehicle_label dari tabel vehicles - registration_number - Nomor registrasi/plat kendaraan - vin - Atribut vin dari tabel vehicles - manufacture_year - Atribut manufacture_year dari tabel vehicles - fuel_type - Atribut fuel_type dari tabel vehicles - fuel_cost - Atribut fuel_cost dari tabel vehicles - fuel_tank_volume - Atribut fuel_tank_volume dari tabel vehicles - max_speed - Atribut max_speed dari tabel vehicles - model - Atribut model dari tabel vehicles - color - Atribut color dari tabel vehicles - trailer - Atribut trailer dari tabel vehicles - additional_info - Atribut additional_info dari tabel vehicles - vehicle_type - Atribut vehicle_type dari tabel vehicles - vehicle_subtype - Atribut vehicle_subtype dari tabel vehicles - vehicle_status_id - Pengidentifikasi entitas status kendaraan - chassis_number - Atribut chassis_number dari tabel vehicles - frame_number - Atribut frame_number dari tabel vehicles - trailer_reg_number - Atribut trailer_reg_number dari tabel vehicles - payload_weight - Atribut payload_weight dari tabel vehicles - payload_height - Atribut payload_height dari tabel vehicles - payload_length - Atribut payload_length dari tabel vehicles - payload_width - Atribut payload_width dari tabel vehicles - passenger_capacity - Jumlah maksimum penumpang - gross_weight - Atribut gross_weight dari tabel vehicles - standard_fuel_consumption - Rata‑rata konsumsi bahan bakar normal dalam liter per 100 km - fuel_grade - Atribut fuel_grade dari tabel vehicles - wheel_arrangement - Atribut wheel_arrangement dari tabel vehicles - tyre_size - Ukuran kendaraan: dimensi dan ukuran roda - tyres_number - Jumlah roda - liability_insurance_policy_number - Atribut liability_insurance_policy_number dari tabel vehicles - liability_insurance_valid_till - Tanggal sampai asuransi tanggung jawab berlaku - free_insurance_policy_number - Atribut free_insurance_policy_number dari tabel vehicles - free_insurance_valid_till_date - Tanggal sampai asuransi gratis berlaku

Hubungan

Tautan ke objects (pelacak saat ini), garages (lokasi layanan), vehicle_service_tasks; dilacak di vehicle_trackers_history

Catatan khusus

Kolom dimensi fisik (payload_length, payload_width, payload_height, gross_weight) mendukung analitik perencanaan muatan; tanggal asuransi memungkinkan pelacakan kepatuhan

chevron-rightgarageshashtag

Deskripsi: Lokasi fasilitas layanan dan perawatan dengan koordinat geografis (latitude, longitude, radius), informasi kontak untuk mekanik dan dispatcher, memungkinkan deteksi kunjungan layanan berbasis geofence dan analisis kedekatan

Atribut
Rincian

Bidang kunci

- garage_id - Pengidentifikasi entitas garasi - user_id - Pengidentifikasi entitas pengguna - latitude - Objek lokasi - longitude - Objek lokasi - radius - Ukuran geolokasi dalam meter - address - Objek lokasi - organization_label - ID depo - mechanic_name - Nama mekanik - dispatcher_name - Nama dispatcher

Hubungan

Dirujuk oleh vehicles.garage_id untuk penugasan lokasi layanan

Catatan khusus

Kolom lokasi memungkinkan deteksi kunjungan layanan berbasis geofence dan analisis kedekatan

chevron-rightvehicle_service_taskshashtag

Deskripsi: Penjadwalan perawatan dan pelacakan riwayat layanan dengan beberapa tipe pemicu (berbasis tanggal, berbasis jarak tempuh, berbasis jam mesin), interval tugas berulang, pemberitahuan multi-saluran (email, SMS, push), dan pembedaan antara perawatan terencana (is_repeat) dan perawatan tak terencana

Atribut
Rincian

Bidang kunci

- service_task_id - Pengidentifikasi entitas tugas layanan - vehicle_id - Pengidentifikasi entitas kendaraan - description - Atribut description dari tabel vehicle_service_tasks - status - Nilai status dari atribut status - cost - Atribut cost dari tabel vehicle_service_tasks - start_date - Tanggal dan waktu yang terkait dengan atribut start_date - end_date - Tanggal dan waktu yang terkait dengan atribut end_date - completion_date - Tanggal dan waktu yang terkait dengan atribut completion_date - predicted_datetime - Tanggal dan waktu yang terkait dengan atribut predicted_datetime - mileage_limit - Atribut mileage_limit dari tabel vehicle_service_tasks - engine_hours_limit - Atribut engine_hours_limit dari tabel vehicle_service_tasks - start_mileage - Atribut start_mileage dari tabel vehicle_service_tasks - start_engine_hours - Atribut start_engine_hours dari tabel vehicle_service_tasks - mileage_notification_interval - Atribut mileage_notification_interval dari tabel vehicle_service_tasks - engine_hours_notification_interval - Atribut engine_hours_notification_interval dari tabel vehicle_service_tasks - date_notification_interval - Mengonversi integer N menjadi N hari - mileage_repeat_interval - Atribut mileage_repeat_interval dari tabel vehicle_service_tasks - engine_hours_repeat_interval - Atribut engine_hours_repeat_interval dari tabel vehicle_service_tasks - date_repeat_interval - Mengonversi integer N menjadi N hari - notification_emails - Atribut notification_emails dari tabel vehicle_service_tasks - notification_sms_phone_numbers - Atribut notification_sms_phone_numbers dari tabel vehicle_service_tasks - is_notification_push_enabled - Atribut is_notification_push_enabled dari tabel vehicle_service_tasks - completion_mileage - Atribut completion_mileage dari tabel vehicle_service_tasks - completion_engine_hours - Atribut completion_engine_hours dari tabel vehicle_service_tasks - is_repeat - Atribut is_repeat dari tabel vehicle_service_tasks - is_unplanned - Atribut is_unplanned dari tabel vehicle_service_tasks - comment - Atribut comment dari tabel vehicle_service_tasks

Konten

Mendukung tiga tipe pemicu: berbasis tanggal, berbasis jarak tempuh, berbasis jam mesin; pengaturan notifikasi untuk email, SMS, push

Catatan khusus

is_repeat dan kolom interval memungkinkan jadwal perawatan berulang; is_unplanned membedakan antara perawatan terjadwal vs. reaktif

Lokasi dan perutean

chevron-rightzoneshashtag

Deskripsi: Area geofence yang mendefinisikan perimeter virtual menggunakan lingkaran atau poligon untuk memantau peristiwa masuk dan keluar kendaraan/aset, mendukung otomatisasi berbasis aturan dan analitik lokasi dengan pewarnaan untuk pembedaan visual

Atribut
Rincian

Bidang kunci

- zone_id - Pengidentifikasi entitas zona - client_id - Pengidentifikasi entitas klien - zone_label - Atribut zone_label dari tabel zones - zone_type - Atribut zone_type dari tabel zones - latitude - Objek opsional, bounding box yang dapat sepenuhnya memuat hasil yang dikembalikan - longitude - Objek opsional, bounding box yang dapat sepenuhnya memuat hasil yang dikembalikan - circle_center_latitude - Atribut circle_center_latitude dari tabel zones - circle_center_longitude - Atribut circle_center_longitude dari tabel zones - radius - Ukuran geolokasi dalam meter - address - Atribut address dari tabel zones - color - Atribut color dari tabel zones

Konten

Jenis zona meliputi circle, polygon (didefinisikan melalui geofence_points), dan klasifikasi area khusus

Hubungan

Dirujuk oleh rules2zones, users2zones; verteks polygon disimpan di geofence_points

Catatan khusus

Fungsi PostGIS dapat digunakan untuk memeriksa point-in-polygon untuk analisis geofence yang kompleks

chevron-rightplaceshashtag

Deskripsi: Titik minat dengan koordinat geografis, definisi radius, dan dukungan bidang kustom yang dapat diperluas untuk menyimpan informasi kontak pelanggan dan data spesifik bisnis, memungkinkan integrasi CRM/ERP melalui external_id dan pelaporan berbasis lokasi

Atribut
Rincian

Bidang kunci

- place_id - Pengidentifikasi entitas place - user_id - Pengidentifikasi entitas pengguna - place_label - Atribut place_label dari tabel places - latitude - Objek lokasi - longitude - Objek lokasi - radius - Ukuran geolokasi dalam meter - address - Atribut address dari tabel places - description - Atribut description dari tabel places - external_id - ID untuk integrasi dengan sistem eksternal (CRM) - custom_fields - Bidang tambahan - assigned_datetime - Tanggal dan waktu penugasan titik minat ke pengguna

Hubungan

Diperluas dengan nilai bidang kustom melalui places_text_fields, places_decimal_fields, places_bigint_fields, places_longtext_fields, places_linked_entity_fields

Catatan khusus

custom_fields JSONB menyediakan akses cepat; tabel terkait memungkinkan penyaringan dan pengurutan berdasarkan atribut kustom

chevron-rightgeofence_pointshashtag

Deskripsi: Koordinat verteks yang terurut (field number menentukan urutan) yang mendefinisikan batas polygon untuk bentuk geofence kompleks, memungkinkan perimeter geografis yang presisi di luar zona lingkaran sederhana, digunakan dengan PostGIS ST_MakePolygon untuk operasi geometris

Atribut
Rincian

Bidang kunci

- zone_id - ID dari zona yang terkait dengan formulir ini - number - Nomor seri - latitude - Lokasi - longitude - Lokasi

Hubungan

Banyak catatan per zone_id mendefinisikan batas polygon; number field menentukan urutan verteks

Catatan khusus

Query dengan ORDER BY number untuk merekonstruksi jalur polygon; gunakan dengan PostGIS ST_MakePolygon untuk operasi geometris

Manajemen tugas dan alur kerja

chevron-righttaskshashtag

Deskripsi: Penugasan work order dengan validasi lokasi (latitude, longitude, radius), jendela waktu (time_from, time_to), persyaratan durasi kunjungan (stay_duration_minutes, arrival_duration_minutes), struktur hierarkis melalui parent_task_id, dan pelacakan status untuk manajemen layanan lapangan dan operasi pengiriman

Atribut
Rincian

Bidang kunci

- task_id - Pengidentifikasi entitas tugas - user_id - Pengidentifikasi entitas pengguna - object_id - Pengidentifikasi entitas objek - parent_task_id - Pengidentifikasi entitas tugas induk - task_label - Atribut task_label dari tabel tasks - status - Nilai status dari atribut status - task_type - Jenis tugas, task, route atau checkpoint - latitude - Atribut latitude dari tabel tasks - longitude - Atribut longitude dari tabel tasks - radius - Ukuran geolokasi dalam meter - arrival_datetime - Ketika pelacak tiba di area tugas. DIABAIKAN saat membuat/memperbarui - created_at - Atribut created_at dari tabel tasks - status_change_datetime - Tanggal dan waktu pembaruan tugas - time_from - Tanggal dan waktu yang terkait dengan atribut time_from - time_to - Tanggal dan waktu yang terkait dengan atribut time_to - stay_duration - Atribut stay_duration dari tabel tasks - stay_duration_minutes - Durasi kunjungan. Waktu yang harus dihabiskan pekerja lapangan di lokasi penugasan untuk menyelesaikan tugas dengan sukses. Kunjungan berganda bersifat kumulatif - arrival_duration_minutes - Abaikan kunjungan acak yang lebih pendek dari durasi yang ditentukan. Ketika menghitung durasi minimum, kunjungan yang lebih pendek dari durasi yang ditentukan akan diabaikan - max_delay_minuts - Keterlambatan yang dapat diterima. Jumlah maksimum waktu seorang karyawan dapat terlambat. Setiap tugas yang diselesaikan selama periode ini akan ditandai sebagai "terlambat" - is_stay_control_enabled - Atribut is_stay_control_enabled dari tabel tasks - address - Atribut address dari tabel tasks - description - Atribut Description dari tabel tasks - custom_fields - Atribut custom_fields dari tabel tasks - external_id - Pengidentifikasi entitas eksternal - order_sort - Atribut order_sort dari tabel tasks - created_by - Sumber tugas yang dibuat

Konten

Mendukung tugas hierarkis via parent_task_id; jendela waktu didefinisikan oleh time_from/time_to; validasi geofence dengan lokasi dan radius

Hubungan

Tautan ke forms (pengumpulan data), task_history (perubahan status), objects (pelacak yang ditugaskan)

Catatan khusus

stay_duration dan arrival_duration_minutes mengaktifkan pemantauan kepatuhan untuk tugas pengiriman dan layanan

chevron-rightformshashtag

Deskripsi: Formulir pengumpulan data yang dapat dikonfigurasi untuk menangkap informasi terstruktur selama penyelesaian tugas atau check-in aplikasi seluler, dengan field dan nilai disimpan sebagai JSON, validasi lokasi opsional (is_submission_in_zone), dan persyaratan pengiriman wajib saat dilampirkan pada tugas

Atribut
Rincian

Bidang kunci

- form_id - Pengidentifikasi entitas formulir - task_id - ID dari tugas yang terkait dengan formulir ini - object_id - Pengidentifikasi entitas objek - form_label - Label formulir yang ditentukan pengguna - fields - Jika true, formulir hanya dapat dikirimkan di zona tugas - values - Peta dengan ID field sebagai kunci dan objek field_value sebagai nilai. Kunci digunakan untuk menghubungkan field dan nilai yang sesuai - submitted_at - Tanggal saat nilai formulir terakhir dikirim - submission_latitude - Lokasi saat nilai formulir terakhir dikirim - submission_longitude - Lokasi saat nilai formulir terakhir dikirim - submission_address - Lokasi saat nilai formulir terakhir dikirim - is_submission_in_zone - Jika true, formulir hanya dapat dikirimkan di zona tugas - description - Tanggal saat formulir ini dibuat (atau dilampirkan ke tugas) - created_at - Tanggal saat formulir ini dibuat (atau dilampirkan ke tugas)

Konten

fields mendefinisikan struktur formulir (JSON); values mengandung data yang dikirimkan (JSON)

Hubungan

Tautan ke tasks (work order terkait), objects (pengirim), direferensikan di checkins

Catatan khusus

Flag validasi lokasi is_submission_in_zone mengaktifkan aturan pengiriman formulir berbasis geofence

chevron-rightcheckinshashtag

Deskripsi: Catatan kehadiran dan aktivitas berbasis lokasi yang dikirim melalui aplikasi seluler, melacak waktu kedatangan yang direncanakan versus aktual (planned_datetime vs actual_datetime) dengan koordinat geografis dan pengukuran akurasi lokasi (radius) untuk pelaporan ketepatan waktu

Atribut
Rincian

Bidang kunci

- checkin_id - Pengidentifikasi entitas checkin - employee_id - Pengidentifikasi entitas karyawan juga merupakan pengidentifikasi untuk pengemudi - object_id - Perangkat karyawan - form_id - Pengidentifikasi entitas formulir - user_id - Pengguna karyawan - planned_datetime - Waktu perangkat saat check-in dilakukan - actual_datetime - Waktu server saat permintaan/pesan diproses - latitude - Lokasi saat checkin dikirim - longitude - Lokasi saat checkin dikirim - radius - Kesalahan pemposisian pada suatu titik dalam meter - address - Alamat check-in - comment - Atribut comment dari tabel checkins

Hubungan

Menghubungkan karyawan ke formulir dan lokasi; melacak deviasi dari jadwal yang direncanakan

Catatan khusus

Selisih waktu antara planned_datetime dan actual_datetime mengaktifkan pelaporan ketepatan waktu; radius menentukan toleransi lokasi yang dapat diterima

chevron-righttask_historyhashtag

Deskripsi: Jejak audit lengkap dari peristiwa siklus hidup tugas yang menangkap semua perubahan status, penugasan, pembaruan, dan modifikasi lapangan dengan cap waktu (event_datetime), atribusi pengguna, dan jenis aktivitas (create, update, assign, status_change) yang disimpan dalam field payload untuk analisis kepatuhan dan alur kerja

Atribut
Rincian

Bidang kunci

- task_history_id - Pengidentifikasi entitas riwayat tugas - task_id - Pengidentifikasi entitas tugas - user_id - Pengidentifikasi entitas pengguna - activity - Operasi yang terjadi. Bisa berupa "create", "update", "assign" atau "status_change" - event_datetime - Tanggal dan waktu peristiwa - payload - Bergantung pada operasi. Biasanya, berisi field yang diubah selama operasi

Konten

Jenis aktivitas didefinisikan di description_parameters; payload menyimpan detail spesifik peristiwa (teks)

Catatan khusus

Esensial untuk analisis penyelesaian tugas, pelaporan transisi status, dan pelacakan aktivitas pengguna

Aturan dan otomatisasi

chevron-rightruleshashtag

Deskripsi: Aturan deteksi peristiwa dengan kondisi pemicu yang dapat dikonfigurasi (kecepatan berlebih, pelanggaran geofence, ambang sensor, waktu diam) disimpan dalam parameters (JSONB), dan pengaturan notifikasi multi-saluran (alert_email, alert_sms, alert_phone, is_push_enabled) untuk pemantauan otomatis dan pemberitahuan berdasarkan data perangkat dan server

Atribut
Rincian

Bidang kunci

- rule_id - Pengidentifikasi entitas aturan - object_id - Pengidentifikasi entitas objek - client_id - Pengidentifikasi entitas klien - event_type - Atribut event_type dari tabel rules - event_label - Atribut event_label dari tabel rules - event_group - Atribut event_group dari tabel rules - description - Atribut Description dari tabel rules - parameters - Parameter peristiwa. Untuk detail lebih lanjut tentang parameter yang tersedia, lihat Navixy API docsarrow-up-right. - alert_email - Email untuk notifikasi - alert_sms - Nomor telepon untuk notifikasi SMS - alert_phone - Telepon untuk panggilan suara - is_push_enabled - Jika true, notifikasi push tersedia - created_at - Atribut created_at dari tabel rules - is_deleted - Atribut is_deleted dari tabel rules - maximum - Batas yang diterapkan pada berbagai aturan. Misalnya, untuk aturan waktu diam dengan mesin menyala dalam menit - event_comment1 - Atribut event_comment1 dari tabel rules - event_comment2 - Atribut event_comment2 dari tabel rules

Konten

Parameter aturan (JSONB) mendefinisikan kondisi pemicu; mendukung notifikasi via email, SMS, telepon, dan push

Hubungan

Menghubungkan ke objek melalui rules2objects, zona melalui rules2zones

Catatan khusus

event_type mendefinisikan skenario pemantauan spesifik (kecepatan berlebih, pelanggaran geofence, ambang sensor); maximum field memungkinkan agregasi peristiwa untuk pemberitahuan berbasis ambang

chevron-rightrules2objectshashtag

Deskripsi: Hubungan many-to-many yang menghubungkan aturan ke objek yang dipantau dengan kustomisasi parameter per-objek melalui object_params (JSONB), memungkinkan nilai ambang yang berbeda (mis. batas kecepatan) untuk setiap kendaraan atau aset dalam aturan yang sama

Atribut
Rincian

Bidang kunci

- rule_id - Pengidentifikasi entitas aturan - object_id - Pengidentifikasi entitas objek - param_group_number - Atribut param_group_number dari tabel rules2objects - object_params - Atribut object_params dari tabel rules2objects

Konten

object_params (JSONB) memungkinkan kustomisasi aturan per-objek (mis. batas kecepatan berbeda per kendaraan)

Catatan khusus

Hubungan many-to-many memungkinkan satu aturan memantau banyak objek dengan parameter berbeda

chevron-rightrules2zoneshashtag

Deskripsi: Hubungan many-to-many mengaitkan aturan dengan zona bergeofence, memungkinkan satu aturan memantau peristiwa masuk/keluar di banyak area geografis untuk skenario pemantauan spasial yang kompleks

Atribut
Rincian

Bidang kunci

- rule_id - Pengidentifikasi entitas aturan - zone_id - Pengidentifikasi entitas zona

Catatan khusus

Hubungan many-to-many memungkinkan pemantauan multi-zona untuk satu aturan (mis. pemberitahuan saat memasuki salah satu dari beberapa area terbatas)

Status dan kategorisasi

chevron-rightstatuseshashtag

Deskripsi: Definisi status kustom dalam listing status, termasuk properti tampilan (color untuk tampilan situs web, order_sort untuk penempatan) yang digunakan untuk merepresentasikan status kerja perangkat atau karyawan dengan dukungan soft delete melalui flag is_deleted

Atribut
Rincian

Bidang kunci

- status_id - Pengidentifikasi entitas status - listing_id - Pengidentifikasi entitas listing - status_label - Nilai status dari atribut status_label - color - Warna yang digunakan untuk tampilan di situs web - order_sort - Posisi urut dalam listing status - is_deleted - Atribut is_deleted dari tabel statuses

Hubungan

Kelompok status diorganisasikan oleh listing_id (mereferensikan status_listings); digunakan di status_history

Catatan khusus

order_sort mendefinisikan urutan tampilan; warna memungkinkan pembedaan visual dalam pelaporan

chevron-rightstatus_listingshashtag

Deskripsi: Definisi set status yang mengontrol nilai status mana yang tersedia untuk perangkat atau karyawan, dengan flag izin (is_supervisor_controlled, is_employee_controlled) yang menentukan apakah supervisor, karyawan, atau keduanya dapat mengubah nilai status

Atribut
Rincian

Bidang kunci

- status_listing_id - Pengidentifikasi entitas listing status - user_id - Pengidentifikasi entitas pengguna - status_listing_label - Nilai status dari atribut status_listing_label - is_supervisor_controlled - Jika true supervisor dapat mengubah status kerja, mis. menggunakan aplikasi pemantauan seluler - is_employee_controlled - Jika true karyawan dapat mengubah status kerja mereka sendiri, mis. menggunakan aplikasi pelacakan seluler - is_deleted - Atribut is_deleted dari tabel status_listings

Hubungan

Dirujuk oleh devices.status_listing_id dan statuses.listing_id

Catatan khusus

Flag kontrol menentukan siapa yang dapat mengubah status: hanya supervisor, layanan mandiri karyawan, atau keduanya

chevron-rightstatus_historyhashtag

Deskripsi: Jejak audit dari semua transisi status perangkat dengan cap waktu (changed_datetime di perangkat, server_datetime di server), atribusi pengguna (updated_by), dan tangkapan lokasi (latitude, longitude, address) yang memungkinkan analisis geografis perubahan status dan pelaporan lokasi mulai/akhir hari kerja

Atribut
Rincian

Bidang kunci

- status_history_id - Pengidentifikasi entitas riwayat status - device_id - Pengidentifikasi entitas perangkat - old_status_id - Pengidentifikasi entitas status lama - new_status_id - Pengidentifikasi entitas status baru - updated_by - Tanggal dan waktu yang terkait dengan atribut updated_by - changed_datetime - Tanggal dan waktu penetapan status baru di perangkat - server_datetime - Tanggal dan waktu penetapan status server baru - latitude - Melokasikan perangkat selama perubahan status - longitude - Melokasikan perangkat selama perubahan status - address - Melokasikan perangkat selama perubahan status

Hubungan

Tautan ke devices, statuses (lama dan baru), description_parameters (untuk updated_by role)

Catatan khusus

Penangkapan lokasi memungkinkan analisis geografis transisi status; berguna untuk pelaporan lokasi mulai/akhir hari kerja

chevron-righttagshashtag

Deskripsi: Label kategorisasi yang ditentukan pengguna dengan pengkodean warna yang memungkinkan penyaringan dan pencarian cepat di berbagai tipe entitas (places, geofences, employees, tasks, trackers, vehicles) untuk organisasi yang fleksibel

Atribut
Rincian

Bidang kunci

- tag_id - ID entitas tag - user_id - Pengidentifikasi entitas pengguna - tag_label - Atribut tag_label dari tabel tags - color - Atribut color dari tabel tags

Hubungan

Diterapkan ke entitas melalui tag_links; ruang lingkup didefinisikan oleh pengguna

Catatan khusus

Sistem kategorisasi fleksibel yang mendukung beberapa tag per entitas

Grup dan hierarki

chevron-rightgroupshashtag

Deskripsi: Struktur pengelompokan organisasi untuk tracker yang memungkinkan organisasi visual di antarmuka pengguna dengan warna yang dapat disesuaikan (group_color) dan manajemen hierarkis seperti folder, saat ini berfungsi murni sebagai fungsi visual

Atribut
Rincian

Bidang kunci

- group_id - Grup tracker (terkait melalui objects.group_id). Pembagian ke dalam grup dapat dilihat di daftar beacon, misalnya - client_id - Pengidentifikasi entitas klien - group_label - Judul grup yang ditentukan pengguna, 1 hingga 60 karakter yang dapat dicetak, mis. "Employees" - group_color - Warna grup dalam format web (tanpa #), mis. "FF6DDC". Menentukan warna penanda tracker di peta

Hubungan

Dirujuk oleh objects.group_id; kepemilikan klien via client_id (mereferensikan users)

Catatan khusus

Memungkinkan organisasi seperti folder dari entitas pemantauan untuk pelaporan dan izin

chevron-rightgroups_objectshashtag

Deskripsi: Hubungan many-to-many antara groups dan objects menggunakan primary key komposit (groups_client_id, objects_client_id), memungkinkan objek menjadi anggota beberapa grup secara bersamaan untuk struktur organisasi yang fleksibel

Atribut
Rincian

Bidang kunci

- groups_client_id - Pengidentifikasi entitas klien untuk groups - objects_client_id - Pengidentifikasi entitas klien untuk objects

Catatan khusus

Memungkinkan objek menjadi anggota beberapa grup secara bersamaan; query dengan kedua client_id nilai untuk keanggotaan grup

Bidang kustom dan entitas

chevron-rightentitieshashtag

Deskripsi: Registri tipe entitas yang menentukan entitas bisnis mana yang mendukung bidang kustom dan struktur tata letak field mereka (sections, field_order) disimpan dalam entity_label (JSONB), memungkinkan perpanjangan skema dinamis di places, tasks, dan entitas lain tanpa perubahan basis data

Atribut
Rincian

Bidang kunci

- entity_id - Pengidentifikasi entitas - user_id - Pengidentifikasi entitas pengguna - entity_label - id - int. Pengidentifikasi entitas. type - enum. Saat ini, hanya "place" yang didukung. layout - objek yang menggambarkan tata letak bidang untuk entitas. sections - array objek. Setiap section dapat berisi satu atau lebih field. Setidaknya satu section harus ada dalam sebuah layout. label - string. Nama section. field_order - array string. Field bawaan dan ID bidang kustom (sebagai string) - builtin_type - Atribut builtin_type dari tabel entities

Hubungan

Dirujuk oleh custom_fields untuk mendefinisikan bidang kustom mana yang berlaku untuk tipe entitas mana

Catatan khusus

builtin_type terkait ke description_parameters untuk klasifikasi entitas yang didefinisikan sistem

chevron-rightcustom_fieldshashtag

Deskripsi: Definisi bidang kustom yang memungkinkan perpanjangan skema dinamis untuk tipe entitas, dengan tipe field yang dapat dikonfigurasi (custom_field_type), aturan validasi dan opsi dalam parameters (JSONB), serta flag kewajiban (is_required) untuk penangkapan data yang fleksibel di places, tasks, dan entitas lainnya

Atribut
Rincian

Bidang kunci

- custom_field_id - Pengidentifikasi entitas bidang kustom - entity_id - Pengidentifikasi entitas - custom_field_label - Nama field - custom_field_type - Tipe data dalam field - description - Deskripsi field - is_required - Apakah ini wajib atau tidak? - parameters - Parameter field

Konten

parameters (JSONB) menyimpan konfigurasi spesifik tipe field (aturan validasi, opsi dropdown, dll.)

Hubungan

Mendefinisikan atribut kustom yang tersedia untuk entitas; tipe field terkait ke description_parameters

Catatan khusus

Memungkinkan perpanjangan skema dinamis tanpa perubahan basis data; digunakan secara ekstensif di places dan tasks

Pelacakan historis

chevron-rightdriver_historyhashtag

Deskripsi: Jejak audit lengkap dari penugasan karyawan ke kendaraan dari waktu ke waktu melacak transisi old_employee_id ke new_employee_id dengan cap waktu (changed_datetime, server_datetime), data lokasi (latitude, longitude, address), informasi kunci hardware, dan atribusi pengguna (updated_by) yang memungkinkan analitik spesifik pengemudi ketika pengemudi berpindah antar kendaraan

Atribut
Rincian

Bidang kunci

- driver_history_id - Pengidentifikasi entitas riwayat pengemudi - object_id - Pengidentifikasi entitas objek - old_employee_id - Pengidentifikasi entitas karyawan lama - new_employee_id - Pengidentifikasi entitas karyawan baru - hardware_key - Atribut hardware_key dari tabel driver_history - changed_datetime - Tanggal dan waktu perubahan dibuat pada perangkat - server_datetime - Tanggal dan waktu perubahan dibuat di server - updated_by - Tanggal dan waktu yang terkait dengan atribut updated_by - latitude - Atribut latitude dari tabel driver_history - longitude - Atribut longitude dari tabel driver_history - address - Atribut address dari tabel driver_history

Hubungan

Melacak penugasan pengemudi ke kendaraan dari waktu ke waktu; terkait ke employees dan objects

Catatan khusus

Esensial untuk pelaporan spesifik pengemudi saat pengemudi berpindah kendaraan; penangkapan lokasi memungkinkan analisis lokasi perubahan penugasan

chevron-rightvehicle_trackers_historyhashtag

Deskripsi: Jejak audit yang melacak perangkat GPS (object_id) mana yang dipasang di kendaraan mana (vehicle_id) dari waktu ke waktu dengan cap waktu perubahan (changed_datetime), memungkinkan atribusi data historis yang akurat dan perhitungan jarak tempuh saat pelacak dipindahkan antar kendaraan

Atribut
Rincian

Bidang kunci

- vehicle_tracker_history_id - Pengidentifikasi entitas riwayat pelacak kendaraan - vehicle_id - Pengidentifikasi entitas kendaraan - object_id - Pengidentifikasi entitas objek - changed_datetime - Tanggal dan waktu yang terkait dengan atribut changed_datetime

Hubungan

Melacak perangkat GPS mana yang dipasang pada kendaraan mana dari waktu ke waktu

Catatan khusus

Kritis untuk analisis data historis ketika pelacak dipindahkan antar kendaraan; memungkinkan atribusi jarak tempuh dan penggunaan yang akurat

Data referensi dan lookup

chevron-rightdescription_parametershashtag

Deskripsi: Data referensi sistem yang menyediakan label yang dapat dibaca manusia (description) untuk nilai integer enumerasi (key) yang digunakan di seluruh basis data, diorganisasikan berdasarkan field type (mis. task_status, fuel_type, counter_type, entity_classification) untuk terjemahan nilai yang konsisten dalam pelaporan dan tampilan UI

Atribut
Rincian

Bidang kunci

- key - Nilai yang mungkin pada atribut - type - Atribut komposit yang terdiri dari nama tabel diikuti oleh underscore dan nama atribut dalam tabel - description - Nilai tersirat dari sebuah atribut

Konten

Menyediakan label yang dapat dibaca manusia untuk nilai berkode di seluruh basis data (status tugas, jenis bahan bakar, jenis penghitung, dll.)

Hubungan

Direferensikan melalui foreign key dari banyak tabel untuk kategorisasi yang distandarisasi

Catatan khusus

Esensial untuk menerjemahkan kode integer ke nilai yang dapat dibaca dalam pelaporan; type kelompok field terkait enumerasi

chevron-rightcountershashtag

Deskripsi: Konfigurasi odometer dan penghitung jam mesin yang menghubungkan pembacaan sensor perangkat (sensor_id) ke pengukuran jarak atau waktu dengan koefisien pengali untuk konversi unit (km, miles, jam) dan counter_type dari description_parameters yang mendefinisikan tipe pengukuran

Atribut
Rincian

Bidang kunci

- counter_id - ID internal - device_id - Pengidentifikasi entitas perangkat - counter_type - Tipe penghitung - sensor_id - Pengidentifikasi entitas sensor - multiplier - Koefisien untuk mengubah nilai menjadi salah satu metrik (km, l, dll.)

Hubungan

Menghubungkan perangkat ke pembacaan sensor yang merepresentasikan penghitung jarak atau waktu

Catatan khusus

multiplier mengonversi pulsa sensor menjadi unit aktual (km, miles, jam); counter_type from description_parameters mendefinisikan tipe pengukuran

chevron-rightdevice_output_namehashtag

Deskripsi: Label kustom untuk saluran output perangkat yang memetakan pengidentifikasi output numerik (number) ke nama yang ditentukan pengguna (label) seperti "Door Lock" atau "Engine Block" untuk pelaporan yang dapat dibaca dan analisis perintah serta status output perangkat

Atribut
Rincian

Bidang kunci

- device_id - Pengidentifikasi entitas perangkat - number - Atribut number dari tabel device_output_name - label - Atribut label dari tabel device_output_name

Konten

Memetakan nomor saluran output ke nama yang ditentukan pengguna (mis. "Door Lock", "Engine Block")

Catatan khusus

Memungkinkan pelaporan yang dapat dibaca saat menganalisis perintah dan status output perangkat

raw_telematics_data struktur

Skema raw_telematics_data schema contains three primary table types that work together to provide comprehensive device data.

Bronze layer raw telematics data ERD
ERD data telematika mentah lapisan Bronze
circle-info

Diagram interaktif skema raw_telematics_data tersedia di dbdiagram.io: https://dbdiagram.io/d/v1-schema-telematics-bd-67a0acef263d6cf9a0d8e750arrow-up-right

Temukan detail skema data telematika mentah di bawah.

Tabel kunci menurut kategori

Setiap tabel melayani tujuan spesifik dalam menangkap aspek berbeda dari informasi perangkat:

chevron-righttracking_data_corehashtag

Tujuan: Data inti lokasi dan gerakan

Atribut
Rincian

Bidang kunci

device_id, device_time, platform_time, latitude, longitude, speed, altitude, satellites, hdop, event_id

Pengindeksan

Dioptimalkan dengan indeks pada (device_id, device_time)

Catatan khusus

Data lokasi (latitude dan longitude) menggunakan format integer dengan presisi 10⁷ untuk kinerja TimescaleDB yang optimal Kecepatan juga disimpan dalam integer, jadi Anda perlu membaginya dengan 100

chevron-rightinputshashtag

Tujuan: Pembacaan sensor dari perangkat

Atribut
Rincian

Bidang kunci

input_id, device_id, device_time, sensor_name, value

Konten

Pembacaan analog (tingkat bahan bakar, suhu, tegangan), nilai yang dihitung (RPM mesin)

Hubungan

chevron-rightstateshashtag

Tujuan: Indikator status perangkat dan mode operasional

Atribut
Rincian

Bidang Kunci

state_id, device_id, device_time, state_name, value

Konten

Indikator mode operasi (bekerja, idle, mati), status komponen (kontak, pintu)

Format Nilai

Nilai Boolean (1/0) atau kode status spesifik

Data dalam skema ini diambil langsung dari perangkat, dengan latensi minimal (biasanya detik). Skema ini dioptimalkan untuk data deret waktu menggunakan TimescaleDB untuk penyimpanan dan pengambilan yang efisien.

Informasi tambahan

Validasi data

Basis data menegakkan integritas data melalui beberapa mekanisme:

  • KONSTRAIN CHECK memvalidasi agar nilai berada dalam rentang yang dapat diterima

  • Kunci asing memastikan hubungan antar tabel tetap konsisten

  • KONSTRAIN NOT NULL menjamin bahwa bidang yang diperlukan selalu memiliki nilai

  • Nilai DEFAULT memberikan nilai cadangan ketika data tidak secara eksplisit disediakan

Optimisasi kueri

Tabel diatur dengan strategi pengindeksan tertentu:

  • Semua tabel mencakup indeks berbasis waktu pada record_added_at

  • Kolom kunci asing memiliki indeks khusus untuk kinerja join

  • Kombinasi kolom yang sering digunakan memiliki indeks komposit

  • TimescaleDB menyediakan indeks khusus untuk kueri deret waktu

repo struktur data

circle-exclamation

Skema repo skema menyediakan kerangka kerja komprehensif untuk mengelola struktur organisasi, aset, perangkat, dan hubungan mereka dalam lingkungan multi-tenant. Dibangun di atas PostgreSQL 14+ dengan ekstensi ltree, skema ini mendukung organisasi hierarkis, definisi bidang kustom untuk jenis entitas apa pun, kontrol akses berbasis peran dengan pembatasan tingkat objek, dan jejak audit lengkap dengan pelacakan perubahan pada tingkat bidang. Semua entitas dapat diperluas tanpa modifikasi skema, dilokalisasi untuk penyebaran internasional, dan dihubungkan melalui hubungan polimorfik yang fleksibel.

Skema ini mengatasi skenario manajemen data yang kompleks termasuk hierarki aset armada di berbagai tingkat organisasi, platform SaaS multi-tenant yang memerlukan isolasi data, operasi yang didorong kepatuhan dengan persyaratan audit terperinci, dan sistem yang membutuhkan model data dinamis yang dapat disesuaikan melalui bidang kustom daripada migrasi basis data.

circle-info

Diagram interaktif darirepo skema data tersedia di dbdiagram.io: https://dbdiagram.io/d/Navixy-Repo-data-schema-68ad788c1e7a611967a0930earrow-up-right

Temukan repo rincian skema di bawah.

Frekuensi pembaruan

Data dalam repo skema disinkronkan secara real-time dengan sistem sumber. Pembaruan terjadi segera saat perubahan terjadi, dengan jejak audit yang menangkap semua modifikasi untuk kepatuhan dan analisis historis.

ci_base

Skema repo skema menggunakan pola Single Table Inheritance untuk semua data referensi melalui ci_base tabel:

Skema repo skema menggunakan Single Table Inheritance pola untuk semua data referensi melalui ci_base tabel. Desain ini mengkonsolidasikan kamus sistem, klasifikasi, dan item referensi yang didefinisikan pengguna ke dalam satu struktur terpadu, memberikan konsistensi dan fleksibilitas di seluruh skema.

Arsitektur:

Skema ci_base tabel berfungsi sebagai dasar untuk semua data referensi, menggunakan discriminator bidang untuk mengidentifikasi tipe referensi spesifik. Setiap tipe referensi memiliki tabel terkait (seperti ci_device_type, ci_asset_type) yang berbagi id sebagai ci_base, menciptakan hubungan pewarisan yang tipe-aman.

Bagaimana entitas bisnis terhubung ke ci_base:

Semua entitas bisnis dalam repo skema merujuk ci_base subtipe untuk mendefinisikan klasifikasi dan perilaku mereka:

  • organization → merujuk ci_organization_type (yang mewarisi dari ci_entity_typeci_base)

  • user → merujuk ci_user_type (yang mewarisi dari ci_entity_typeci_base)

  • device → merujuk ci_device_type dan ci_device_status (keduanya mewarisi dari ci_base)

  • asset → merujuk ci_asset_type (yang mewarisi dari ci_entity_typeci_base)

  • inventory → merujuk ci_inventory_type (yang mewarisi dari ci_entity_typeci_base)

  • asset_group → merujuk ci_asset_group_type (yang mewarisi dari ci_entity_typeci_base)

Kategori tipe referensi:

Kategori
Tabel
Tujuan

Konfigurasi sistem

ci_module, ci_country, ci_role

Menetapkan modul sistem, referensi geografis, dan peran pengguna

Definisi tipe entitas

ci_entity_type, ci_device_type, ci_asset_type, ci_inventory_type, ci_organization_type, ci_user_type, ci_asset_group_type

Mengklasifikasikan semua entitas bisnis berdasarkan tipe

Status dan klasifikasi

ci_device_status, ci_asset_type_category

Melacak status entitas dan mengelompokkan tipe ke dalam kategori

Kontrol akses

ci_permission_scope

Menentukan izin apa yang dapat diberikan (terhubung ke ci_module dan ci_entity_type)

Hubungan

ci_device_relation_type

Menetapkan tipe hubungan antar perangkat (master-slave, cadangan, dll.)

Kategorisasi

ci_tag, ci_catalog_category

Memungkinkan penandaan yang fleksibel dan organisasi katalog

chevron-rightContoh pola kuerihashtag

Tabel kunci menurut kategori

Tabel dalam repo skema disusun ke dalam kategori fungsional. Deskripsi di bawah merangkum tabel paling penting berdasarkan tujuan bisnisnya.

chevron-rightorganizationhashtag

Tujuan: Manajemen organisasi hirarkis

Atribut
Rincian

Bidang kunci

id, parent_id, path, organization_type_id, title_en, is_active, deleted_at

Pengindeksan

Indeks GiST pada path untuk kueri hirarkis, indeks pada parent_id dan organization_type_id

Catatan khusus

Menggunakan ltree untuk hirarki multi-level, mewarisi dari customizable_entity untuk dukungan bidang kustom

chevron-rightuserhashtag

Tujuan: Akun pengguna dan autentikasi

Atribut
Rincian

Bidang kunci

id, organization_id, user_type_id, identity_provider, identity_provider_id, full_name, is_active

Pengindeksan

Indeks unik pada (organization_id, identity_provider, identity_provider_id)

Catatan khusus

Integrasi penyedia identitas eksternal (Keycloak, Auth0, Okta), mewarisi dari customizable_entity

chevron-rightdevicehashtag

Tujuan: Perangkat pelacakan fisik

Atribut
Rincian

Bidang kunci

id, organization_id, device_type_id, status_id, hw_id, label

Pengindeksan

Indeks pada organization_id, device_type_id, status_id, hw_id

Catatan khusus

Pengidentifikasi perangkat keras untuk pelacakan perangkat, mewarisi dari customizable_entity untuk bidang kustom

chevron-rightassethashtag

Tujuan: Aset fisik atau virtual

Atribut
Rincian

Bidang kunci

id, organization_id, asset_type_id, label, description

Pengindeksan

Indeks pada organization_id dan asset_type_id

Catatan khusus

Mewarisi dari customizable_entity, terhubung ke perangkat melalui device_asset_link

chevron-rightinventoryhashtag

Tujuan: Catatan inventaris dan gudang

Atribut
Rincian

Bidang kunci

id, organization_id, inventory_type_id, code

Pengindeksan

Indeks unik pada (organization_id, code)

Catatan khusus

Kode unik dalam organisasi, terhubung ke perangkat melalui device_inventory_link

chevron-rightasset_grouphashtag

Tujuan: Pengelompokan aset dengan pelacakan historis

Atribut
Rincian

Bidang kunci

id, organization_id, group_type_id, title_en, description

Hubungan

FROM repo.asset_group AS ag JOIN repo.asset_group_item AS agi ON agi.group_id = ag.id JOIN repo.asset AS a ON a.id = agi.asset_id WHERE agi.detached_at IS NULL

Catatan khusus

Keanggotaan berbasis waktu melalui asset_group_item, kueri anggota saat ini dengan WHERE detached_at IS NULL

chevron-rightcustom_field_defhashtag

Tujuan: Definisi bidang kustom dan metadata

Atribut
Rincian

Bidang kunci

id, organization_id, owner_entity_type_id, code, field_type, is_multi, is_required

Konten

Tipe bidang termasuk teks, angka, boolean, tanggal, datetime, entity_ref, catalog_item_ref

Catatan khusus

Memungkinkan bidang kustom yang fleksibel untuk setiap tipe entitas, nilai disimpan dalam tipe-spesifik custom_field_value_* tabel

chevron-rightacl_role_permissionhashtag

Tujuan: Manajemen izin berbasis peran

Atribut
Rincian

Bidang kunci

id, role_id, permission_scope_id, target_entity_id, actions

Konten

Bitmask aksi (READ=1, UPDATE=2, DELETE=4, CREATE=8), izin spesifik target atau luas untuk tipe entitas

Hubungan

FROM repo.user_role AS ur JOIN repo.acl_role_permission AS rp ON rp.role_id = ur.role_id WHERE ur.user_id = $user_id

Catatan khusus

Bekerja dengan user_role dan acl_user_scope untuk menentukan izin akhir pengguna

chevron-rightaudit_eventhashtag

Tujuan: Log audit terpadu untuk semua perubahan sistem

Atribut
Rincian

Bidang kunci

id, event_category, user_id, aggregate_type, aggregate_id, event_type, event_data, occurred_at

Pengindeksan

Indeks pada (user_id, occurred_at), (aggregate_type, aggregate_id, occurred_at), (event_category, occurred_at)

Catatan khusus

Dipartisi berdasarkan occurred_at (bulanan), dua kategori: auth (otentikasi) dan domain (peristiwa bisnis), menyimpan delta perubahan tingkat bidang dalam event_data JSONB

Hubungan data

Skema repo skema menerapkan pola hubungan canggih untuk pemodelan data yang fleksibel:

Struktur hirarkis

  • Organisasi menggunakan path ltree untuk kueri pohon yang efisien

  • Item referensi (ci_base) mendukung hirarki opsional

  • Pemeliharaan path otomatis melalui trigger basis data

Pola pewarisan

  • Pewarisan tabel: customizable_entity → entitas bisnis (organization, user, device, asset, inventory, asset_group)

  • Pewarisan ID: ci_base → tabel tipe referensi

  • Diskriminasi tipe melalui entity_type_id dan discriminator fields

Hubungan polimorfik

Beberapa tabel menggunakan referensi polimorfik tanpa constraint kunci asing untuk fleksibilitas maksimum:

  • acl_role_permission.target_entity_id → apa pun customizable_entity

  • acl_user_scope.target_entity_id → apa pun customizable_entity

  • entity_tag.entity_id → apa pun customizable_entity

Hubungan ini divalidasi pada tingkat aplikasi.

Informasi tambahan

Validasi data

Skema repo skema menegakkan integritas data melalui beberapa mekanisme:

Kendala basis data

  • Kendala UNIQUE dengan dukungan soft delete (indeks parsial WHERE deleted_at IS NULL)

  • Kendala CHECK (mis., device_relation menjamin master_idslave_id)

  • Kendala NOT NULL pada bidang yang diwajibkan

  • Nilai DEFAULT untuk timestamp dan flag boolean

Validasi tingkat aplikasi

  • Validasi tipe entitas untuk referensi polimorfik

  • Validasi katalog untuk referensi bidang kustom

  • Validasi tipe bidang kustom

  • Manajemen array bidang multi-nilai

Optimisasi kueri

Tabel diatur dengan strategi pengindeksan tertentu:

Indeks standar:

  • Semua foreign key memiliki indeks khusus

  • Indeks berbasis waktu pada created_at, updated_at, deleted_at

  • Indeks komposit untuk kolom yang sering dijoin

Indeks khusus:

  • Indeks GiST pada path ltree untuk kueri hirarkis

  • Indeks unik parsial yang mendukung soft delete

  • Indeks nilai bidang kustom untuk penyaringan dan pengurutan

  • Indeks event audit pada waktu + entitas untuk pencarian yang efisien

Pertimbangan performa:

  • Disarankan pooling koneksi (PgBouncer)

  • Perawatan VACUUM rutin untuk tabel besar

  • Kemungkinan partisi di masa depan untuk device tabel berdasarkan organization_id

  • View materialized untuk perhitungan kontrol akses yang kompleks

Last updated

Was this helpful?