iOS
...
Parse Swift SDK
Data Objects

Panduan Membuat Relasi pada ParseSwift iOS SDK di Back4App

16min

Hubungan

Pendahuluan

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.

Tujuan

  • Untuk memahami bagaimana hubungan diterapkan dalam Database Back4App.

Prasyarat

Untuk menyelesaikan quickstart ini, Anda perlu:

Memahami Aplikasi Buku Kami

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


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.

Referensi cepat perintah yang akan kita gunakan

Kami menggunakan objek Penulis, Penerbit, ISBN dan Buku:

Genre
Author
Publisher
ISBN
Book


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:

Create
Read
Add relations
Query relations
Remaining relations


1 - Unduh Template Aplikasi Buku

Proyek XCode memiliki struktur berikut

Document image


Kapan saja, Anda dapat mengakses Proyek lengkap melalui repositori GitHub kami.

2 - Alur CRUD Tambahan

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

Swift


Untuk detail lebih lanjut tentang langkah ini, Anda dapat pergi ke panduan operasi dasar.

3 - Menyiapkan hubungan

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


Seperti yang dapat dilihat, hubungan dibuat dengan menempatkan objek Buku di tengah. Panah menunjukkan bagaimana setiap objek terkait dengan objek Buku.

4 - Mengimplementasikan hubungan

Kasus 1:1

Menambahkan 1:1 hubungan dapat dengan mudah dicapai dengan menambahkan properti di objek Buku, yaitu,

Swift


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

Swift


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

Swift


5 - Menanyakan relasi

Untuk 1:1 relasi, mengingat induk Book dan anaknya ISBN, kita menanyakan anak yang sesuai dengan menyertakannya dalam Book query

Swift


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

Swift


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

Swift


6 - Jalankan aplikasi!

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.