Tenant dan Sub-Tenant
Model hirarki organisasi di Sistem V3.
Tenant = Keuskupan
Tenant adalah organisasi independen tingkat keuskupan. Contoh: ASAK KAJ, ASAK Keuskupan Padang, ASAK Keuskupan Lampung. Tiap Tenant punya data yang terisolasi dari Tenant lain — tidak ada kebocoran data silang.
Tabel DB terkait: tenant (metadata, negara, kontak), bank (master bank per tenant).
Sub-Tenant = Paroki
Sub-Tenant adalah sub-organisasi di dalam Tenant. Di ASAK KAJ, Sub-Tenant = ASAK Paroki. Contoh: ASAK Paroki Bojong Indah, ASAK Paroki Meruya, dst.
Tabel DB terkait: subtenant, subtenantbankaccount (Rekening ASAK Paroki), subtenantbankaccountbalance (saldo real-time).
Relasi 1:N dengan exception
Satu Tenant punya banyak Sub-Tenant (1:N). Tapi Sub-Tenant bisa berelasi lintas (partner, afiliasi, sementara) — ini yang memungkinkan Friendship.
Tabel DB yang bikin itu mungkin: subtenantfriendship — relasi bilateral antar Sub-Tenant.
Kenapa desain multi-tenant
- Legal & data privacy — tiap keuskupan otonom; data anak & donatur tidak dapat diakses keuskupan lain.
- Skalabel — desain support ≥ 100 tenant dalam satu basis data.
- Konfigurasi berbeda — tiap tenant bisa punya program, tarif, aturan pembayaran sendiri.
Implikasi untuk ASAK
Di ASAK KAJ saat ini:
- 1 Tenant (KAJ).
- ~60+ Sub-Tenant (paroki-paroki KAJ).
- Kerja sama antar-paroki dikelola via
subtenantfriendship+ logika Friend Program di Sistem V3. - Kerja sama lintas-keuskupan (ASAK Nusantara) akan butuh relasi lintas-Tenant — ini lebih kompleks dan di-handle di layer aplikasi, bukan konstraint database.