Tag: Virtual Column

  • 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.