Merancang database untuk aplikasi jarang lengkap tanpa membuat hubungan antar tabel. Editor database AppMaster memungkinkan Anda membuat hubungan seperti itu dalam satu gerakan sederhana. Anda hanya perlu menggambar garis tautan antar tabel dan kemudian memilih jenis hubungan (satu-ke-satu, satu-ke-banyak, banyak-ke-banyak) dan, jika perlu, nama bidangnya. Tetapi bagaimana jika tabel tersebut harus mengacu pada dirinya sendiri?
Mari kita menganalisis situasi ketika diperlukan untuk memelihara log catatan tertentu. Pada saat yang sama, ini diatur sedemikian rupa sehingga catatan dibuat secara ketat dalam sebuah rantai. Setiap entri harus ditautkan ke entri sebelumnya dan selanjutnya (kecuali untuk entri pertama dan terakhir, tentu saja). Dengan demikian, seluruh rantai dapat dilacak untuk setiap catatan individu, dan sistem menerima perlindungan tambahan terhadap perubahan yang tidak sah.
Desain basis data
Pertama, kita perlu membuat model itu sendiri di desainer database. Sebut saja Journal dan tambahkan satu kolom teks, record .
Langkah selanjutnya adalah membuat koneksi. Untuk melakukannya, klik kanan di mana saja pada kanvas dan pilih Create relation .
Langkah selanjutnya adalah mengatur koneksi. Untuk melakukan ini, Anda perlu memilih model yang sama dengan Source dan Target (dalam hal ini, Journal ), mengatur nama field ( next dan previous ), dan jenis koneksi ( has_one ).
Penyetelan tabel referensi mandiri selesai. Anda dapat mulai membuat desain front-end dan proses bisnis.
Membuat proses bisnis
Mari buat proses bisnis backend untuk menambahkan entri baru ke jurnal. Ini akan menerima teks entri baru sebagai parameter input. Ini akan mencari database untuk entri terbaru untuk mengaitkannya dengan entri baru. Untuk pencarian, Anda dapat menyetel _Limit = 1 (karena hanya diperlukan satu record terakhir), yang akan cukup karena, secara default, record akan diurutkan berdasarkan ID dan dikeluarkan sesuai urutan penambahannya ke database, dimulai dengan rekor terakhir.
Hasil pencarian akan berupa array yang terdiri dari satu elemen. Kita perlu mengekstraknya menggunakan blok Array Element dengan index 0 dan membentuk entri jurnal baru ( Make Journal ). Langkah terakhir tinggal menulis ke database ( DB: Create Journal ) dan selesaikan proses bisnisnya.
Proses bisnis ini dapat digunakan untuk titik akhir default untuk membuat rekaman database baru.
Desain ujung depan
Untuk front-end aplikasi web, cukup menambahkan tiga elemen ke halaman.
- Bidang teks untuk memasukkan konten entri baru
- Tombol untuk menambahkan entri
- Tabel untuk menampilkan semua entri.
Untuk tombol "ADD Journal Record" , Anda juga perlu membuat proses bisnis sederhana. Saat mengklik tombol, teks dari bidang input harus dikirim ke titik akhir untuk membuat rekaman baru, dan tombol lain diklik untuk memperbarui konten tabel sebagai tindakan terakhir.
Untuk tabelnya sendiri, ada baiknya juga menyiapkan proses bisnis, tetapi dalam pelajaran ini, kami tidak akan membahasnya. Semua informasi yang diperlukan dapat ditemukan dalam pelajaran tentang menyiapkan tabel . Perlu dicatat bahwa ketika mendapatkan data, Anda perlu menentukan _with parameter untuk mendapatkan data dari tabel terkait (terlepas dari kenyataan bahwa, dalam kasus kami, tabel tersebut terkait dengan dirinya sendiri).
Kami dapat menerbitkan aplikasi, menambahkan beberapa entri, dan memverifikasi bahwa semuanya berfungsi dengan benar. Setiap entri benar-benar terkait dengan entri dalam tabel yang sama. Misalnya, untuk entri dengan ID 3, ada tautan ke entri sebelumnya (ID 2) dan entri berikutnya (ID 4).