Memanfaatkan Tabel Dereferensi di Appsheet

Melanjutkan tulisan mengenai Appsheet sebelumnya, salah satu fitur yang saya sukai adalah tabel dereferensi.

Apa itu? Dalam AppSheet, Dereference (Ref) adalah cara mengambil data dari tabel lain melalui hubungan antar-tabel. Jika di pemrograman tradisional ini mirip dengan Join pada SQL atau mengakses properti objek (dot notation), di AppSheet ini jauh lebih sederhana.

Misalnya saya ingin punya tabel bernama Tournaments dan Matches yang saling terhubung, maka saya akan membuat kolom di tabel Matches bernama tournament_id yang akan dikasih tipe data Ref. Nanti di tabel Tournaments akan tercipta tabel dereferensi yang terhubung ke tabel Matches.

Cara pakainya gimana? Ada 2 cara.

Pertama dari sisi tabel Tournaments, misalnya saya ingin menampilkan semua data Matches yang terhubung ke Tournament tertentu, maka saya cukup menambahkan tabel dereferensi tadi ke dalam view detail di Appsheet. Nanti secara otomatis akan menampilkan daftar Matches yang terhubung.

Memanfaatkan Tabel Dereferensi di Appsheet

Kedua dari sisi tabel Matches, karena saya sudah punya kolom bernama tournament_id yang merupakan “foreign_key” dari tabel Tournaments, jika saya ingin menampilkan kolom lain dari tabel Tournaments maka saya cukup memanfaatkan tanda titik.

Contohnya, saya ingin mendapatkan nama tournament. Maka pada tabel Matches saya cukup membuat tabel virtual kemudian formulanya ditulis sebagai berikut.

[tournament_id].[tournament_name]

Penjelasan: kolom tournament_id merupakan nama kolom dereferensi di tabel Matches dan juga primary key di tabel Tournaments. Kemudian kolom tournament_name adalah nama kolom yang menyimpan data nama turnamennya.

Cara ini jika dilakukan pada SQL, kurang lebih akan seperti kita menggunakan perintah JOIN.

SELECT 
    Tournaments.tournament_name
FROM 
    Matches
JOIN 
    Tournaments ON Matches.tournament_id = Tournaments.tournament_id;

Bedanya, Appsheet akan memproses dengan lebih cepat karena tidak perlu melakukan scanning pada semua data di tabel.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.