Panduan Membuat Relasi pada ParseSwift iOS SDK di Back4App
Hubungan adalah fitur dasar untuk mengorganisir objek data yang disimpan di database. ParseSwift menyediakan alat dan metode yang diperlukan untuk membangun hubungan antara kelas di Database Back4App Anda. Tergantung pada kasus penggunaan, kita dapat mengidentifikasi jenis hubungan berikut
- 1:1: Sebuah hubungan yang hanya menghubungkan dua objek data.
- 1:N: Sebuah hubungan antara satu objek data danN objek data
- N:N: Sebuah hubungan antaraN objek data keN objek data.
Seperti yang akan kita lihat di bawah, menerapkan 1:1 hubungan relatif sederhana. Untuk 1:N dan N:N hubungan, implementasinya melibatkan objek ParseRelation yang disediakan oleh ParseSwift SDK. Ada alternatif tambahan untuk menerapkan 1:N dan N:N hubungan. Namun, karena efisiensi dan kinerja, kami merekomendasikan untuk mengikuti pendekatan kami
Tutorial ini menggunakan aplikasi dasar yang dibuat di Xcode 12 dan iOS 14.
Kapan saja, Anda dapat mengakses Proyek lengkap melalui repositori GitHub kami.
- Untuk memahami bagaimana hubungan diterapkan dalam Database Back4App.
Untuk menyelesaikan quickstart ini, Anda perlu:
- Xcode.
- Sebuah aplikasi yang dibuat di Back4App.
- Catatan: Ikuti Tutorial Instalasi Parse SDK (Swift) untuk membuat Proyek Xcode yang terhubung ke Back4App.
Template proyek adalah Aplikasi Buku di mana pengguna memasukkan detail buku untuk menyimpannya di Database Back4App. Di layar utama aplikasi, Anda akan menemukan formulir untuk melakukannya.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/CATQz6OXhv8MKsTYp2MQs_image.png?format=webp)
Menggunakan + tombol yang terletak di sisi kanan atas bilah navigasi, kita dapat menambahkan sebanyak mungkin Penerbit, Genre, dan Penulis sesuai kebutuhan. Setelah pengguna memasukkan sebuah buku, mereka dapat menggunakan tombol Tambah buku untuk menyimpan buku di Database Back4App mereka. Selain itu, tombol Daftar buku akan memungkinkan kita untuk menampilkan semua buku yang ditambahkan pengguna dan juga untuk melihat hubungan mereka dengan penerbit dan penulis.
Kami menggunakan objek Penulis, Penerbit, ISBN dan Buku:
Sebelum menyimpan instance objek ini di Database Back4App, semua propertinya harus sesuai dengan Codable dan Hashable protokol.
Kami menggunakan metode berikut untuk mengelola objek-objek ini di Database Back4App:
Proyek XCode memiliki struktur berikut
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/xkHn5bbpziA7whDKS1IDY_image.png?format=webp)
Kapan saja, Anda dapat mengakses Proyek lengkap melalui repositori GitHub kami.
Sebelum melanjutkan, perlu untuk mengimplementasikan beberapa fungsi CRUD agar kita dapat menyimpan Penulis, Penerbit dan Genre objek. Di dalamMainController+ParseSwift.swift file, di bawah ekstensi untuk kelas MainController , kami mengimplementasikan metode berikut
Untuk detail lebih lanjut tentang langkah ini, Anda dapat pergi ke panduan operasi dasar.
Sebelum mulai membuat hubungan, lihatlah referensi cepat bagian untuk mendapatkan gambaran tentang objek yang ingin kita hubungkan satu sama lain. Pada gambar di bawah ini, kami menunjukkan bagaimana objek-objek ini saling terkait
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/HMgGaGgW7i8acqRI5eFuN_image.png?format=webp)
Seperti yang dapat dilihat, hubungan dibuat dengan menempatkan objek Buku di tengah. Panah menunjukkan bagaimana setiap objek terkait dengan objek Buku.
Kasus 1:1
Menambahkan 1:1 hubungan dapat dengan mudah dicapai dengan menambahkan properti di objek Buku, yaitu,
Dalam hal ini, Buku dan ISBN memiliki hubungan 1:1 di mana Buku diidentifikasi sebagai orang tua dan ISBN sebagai anak. Secara internal, ketika Back4App menyimpan sebuah instance dari Buku, ia menyimpan objek ISBN (di bawah nama kelas ISBN ) terlebih dahulu. Setelah proses ini selesai, Back4App melanjutkan dengan objek Buku. Objek Buku baru disimpan sedemikian rupa sehingga properti isbn diwakili oleh objek Pointer<ISBN>. Sebuah Pointer<> memungkinkan kita untuk menyimpan sebuah instance unik dari objek ISBN yang terkait dengan orang tua yang sesuai.
Kasus 1:N
Untuk 1:N relasi, cara yang paling efisien untuk mengimplementasikannya adalah melalui objek ParseRelation<Book> . ParseSwift menyediakan serangkaian metode untuk menambahkan jenis hubungan ini untuk objek apa pun yang sesuai dengan ParseObject protokol. Misalnya, jika kita ingin membuat 1:N relasi antara Book dan Author kita dapat menggunakan
Sangat mudah untuk menyesuaikan cuplikan ini untuk hubungan lain yang kita miliki untuk Buku.
- Menggabungkan semuanya
Setelah kita menetapkan ide dasar untuk menerapkan hubungan, sekarang kita menyelesaikan saveBook() metode. Kita mencantumkan poin-poin kunci yang perlu diingat selama proses ini
Untuk 1:1 relasi, mengingat induk Book dan anaknya ISBN, kita menanyakan anak yang sesuai dengan menyertakannya dalam Book query
Dengan ini, semua buku dari query juga akan memiliki properti isbn yang diatur dengan benar dengan objek ISBN terkait.
Di sisi lain, untuk mengambil objek dengan hubungan 1:N , protokol ParseObject menyediakan metode statis queryRelation(_,parent:). Dengan memberikan nama hubungan (sebagai parameter pertama) dan orang tua, metode ini memungkinkan kita untuk membuat kueri yang diperlukan. Misalnya, untuk mengambil semua Author yang terkait dengan Book tertentu, kita dapat menggunakan cuplikan berikut
Demikian pula, kita dapat menanyakan objek terkait lainnya seperti Publisher.
Dalam file BookDetailsController.swift kita mengimplementasikan kueri ini untuk menampilkan hubungan yang dimiliki sebuah buku dengan penulis dan penerbit
Sebelum menekan tombol jalankan di XCode, jangan lupa untuk mengonfigurasi Back4App aplikasi Anda di AppDelegate kelas!
Anda harus menambahkan beberapa Genre’s, Publisher’s dan Author’s sebelum menambahkan buku baru. Kemudian, Anda dapat mulai memasukkan informasi buku untuk menyimpannya di Database Back4App Anda. Setelah Anda menyimpan satu Buku, buka dasbor Back4App dan pergi ke aplikasi Anda yang terhubung dengan proyek XCode. Di bagian Database, Anda akan menemukan kelas Book di mana semua buku yang dibuat oleh Aplikasi iOS disimpan.
Selain itu, Anda dapat melihat bahwa Back4App secara otomatis membuat kelas ISBN untuk menghubungkannya dengan objek Book. Jika Anda kembali ke kelas Book, Anda dapat mengidentifikasi tipe data untuk setiap jenis hubungan. Dalam kasus ISBN dan Genre, tipe data adalah Pointer<>. Di sisi lain, untuk hubungan seperti Author dan Publisher, tipe data adalah Relation<>. Ini adalah perbedaan kunci yang perlu diingat saat membangun hubungan.