Hubungan referensi mandiri, juga dikenal sebagai hubungan rekursif atau gabungan mandiri, terjadi dalam konteks database relasional ketika tabel berisi kunci asing yang merujuk kembali ke kunci utama tabel yang sama. Jenis hubungan ini lazim dalam berbagai skenario dunia nyata, seperti struktur data hierarki, bagan organisasi, dan ketergantungan induk-anak, di mana suatu entitas terkait dengan dirinya sendiri, baik secara langsung maupun tidak langsung. Menerapkan hubungan referensi mandiri memerlukan pemahaman mendalam tentang prinsip desain basis data relasional dan penggunaan batasan dan aturan integritas referensial yang efektif.
Misalnya, pertimbangkan tabel Karyawan dalam database perusahaan yang menyimpan informasi tentang setiap karyawan, departemennya, jabatan, dan data relevan lainnya. Salah satu aspek kunci dari hierarki organisasi adalah hubungan manajer-bawahan. Daripada membuat tabel terpisah untuk manajer, hubungan referensi mandiri dapat dibuat dalam tabel Karyawan dengan menambahkan kolom kunci asing Manager_ID yang merujuk kembali ke kolom kunci utama Employee_ID. Dalam hal ini, karyawan yang merupakan manajer memiliki Employee_ID mereka sendiri sebagai Manager_ID, dan karyawan yang melapor ke manajer memiliki Employee_ID manajer yang bersangkutan sebagai Manager_ID mereka.
Membuat hubungan referensi mandiri dalam sistem manajemen basis data relasional (RDBMS) seperti PostgreSQL melibatkan pendefinisian kolom kunci utama dan kunci asing dalam skema tabel dan menetapkan batasan dan aturan yang sesuai untuk menjaga integritas referensial. Dalam contoh tabel Karyawan, pernyataan SQL berikut dapat digunakan untuk membuat skema tabel dan membangun hubungan referensi mandiri:
BUAT TABEL Karyawan ( Employee_ID INT KUNCI UTAMA, Nama_Depan VARCHAR(50), Nama_Belakang VARCHAR(50), Departemen VARCHAR(50), Manajer_ID INT, KENDALA fk_Manager KUNCI ASING (Manager_ID) REFERENSI Karyawan (Employee_ID) );
Memahami pentingnya menjaga integritas referensial sangat penting ketika bekerja dengan hubungan referensi diri. Hal ini melibatkan pengaturan aturan CASCADE, SET NULL, atau SET DEFAULT yang sesuai untuk klausa ON DELETE dan ON UPDATE. Aturan ini menentukan tindakan yang harus diambil ketika nilai kunci utama diperbarui atau dihapus.
Sebagai contoh, pertimbangkan skenario dimana Employee_ID manajer berubah atau manajer dihapus dari tabel Karyawan. Untuk menjaga integritas referensial, aturan SET NULL atau SET DEFAULT dapat digunakan untuk klausa ON DELETE, sambil memastikan bahwa nilai Manager_ID baru ditetapkan dengan tepat untuk bawahan yang terkena dampak. Demikian pula, aturan CASCADE dapat digunakan untuk klausa ON UPDATE untuk secara otomatis memperbarui nilai Manager_ID untuk semua bawahan terkait ketika Employee_ID manajer berubah.
Di AppMaster, platform no-code yang canggih, pengguna dapat secara visual membuat hubungan referensi mandiri dalam model data mereka saat merancang aplikasi backend. Platform ini memungkinkan pengguna untuk menentukan kolom kunci utama dan kunci asing, menentukan batasan dan aturan integritas referensial, dan mengelola skema database secara visual. Antarmuka AppMaster yang intuitif memudahkan pengguna untuk membuat dan mengelola hubungan rekursif yang kompleks dalam aplikasi mereka, baik itu hierarki organisasi, sistem kategorisasi produk multi-level, atau skenario lain yang melibatkan hubungan referensi mandiri.
Dengan mengintegrasikan hubungan referensi mandiri dalam aplikasi backend berbasis Go yang dihasilkan, AppMaster memastikan skalabilitas dan kinerja dalam menangani kasus penggunaan perusahaan dan beban tinggi. Selain itu, platform ini dengan mulus membuat ulang aplikasi dari awal ketika persyaratan berubah, menghilangkan utang teknis, dan menyederhanakan proses pengembangan.
Sebagai lingkungan pengembangan terintegrasi (IDE) yang komprehensif, AppMaster memungkinkan pengguna merancang, membangun, dan menerapkan aplikasi web, seluler, dan backend yang kuat dan dapat diskalakan yang menggabungkan struktur dan hubungan data yang kompleks seperti hubungan referensi mandiri. Dengan memanfaatkan kemampuan AppMaster yang luas, pengguna dapat dengan cepat mengembangkan dan menerapkan aplikasi yang memenuhi beragam kebutuhan bisnis, menjadikan prosesnya 10x lebih cepat dan 3x lebih hemat biaya.