Field
Ikhtisar
Class manajemen field tabel data (abstract class). Sekaligus class dasar untuk semua tipe field, tipe field lainnya semua diimplementasikan dengan extends class ini.
Untuk cara mendefinisikan field kustom lihat [Memperluas Tipe Field]
Constructor
Biasanya tidak dipanggil langsung oleh developer, terutama dipanggil melalui method db.collection({ fields: [] }) sebagai entry point proxy.
Saat memperluas field terutama melalui extends abstract class Field, lalu mendaftarkannya ke instance Database.
Signature
constructor(options: FieldOptions, context: FieldContext)
Parameter
Anggota Instance
name
Nama field.
type
Tipe field.
dataType
Tipe penyimpanan database dari field.
options
Parameter konfigurasi inisialisasi field.
context
Objek konteks field.
Method Konfigurasi
on()
Cara definisi shortcut berbasis event tabel data. Setara dengan db.on(this.collection.name + '.' + eventName, listener).
Saat extends biasanya tidak perlu meng-override method ini.
Signature
on(eventName: string, listener: (...args: any[]) => void)
Parameter
off()
Cara penghapusan shortcut berbasis event tabel data. Setara dengan db.off(this.collection.name + '.' + eventName, listener).
Saat extends biasanya tidak perlu meng-override method ini.
Signature
off(eventName: string, listener: (...args: any[]) => void)
Parameter
bind()
Konten yang dieksekusi saat field ditambahkan ke tabel data. Biasanya digunakan untuk menambahkan event listener tabel data dan pemrosesan lainnya.
Saat extends, harus memanggil method super.bind() yang sesuai terlebih dahulu.
Signature
bind()
unbind()
Konten yang dieksekusi saat field dihapus dari tabel data. Biasanya digunakan untuk menghapus event listener tabel data dan pemrosesan lainnya.
Saat extends, harus memanggil method super.unbind() yang sesuai terlebih dahulu.
Signature
unbind()
get()
Mendapatkan nilai item konfigurasi field.
Signature
get(key: string): any
Parameter
Contoh
merge()
Menggabungkan nilai item konfigurasi field.
Signature
merge(options: { [key: string]: any }): void
Parameter
Contoh
remove()
Menghapus field dari tabel data (hanya menghapus dari memori).
Contoh
Method Database
removeFromDb()
Menghapus field dari database.
Signature
removeFromDb(options?: Transactionable): Promise<void>
Parameter
existsInDb()
Memeriksa apakah field ada di database.
Signature
existsInDb(options?: Transactionable): Promise<boolean>
Parameter
Daftar Tipe Field Bawaan
NocoBase menyediakan beberapa tipe field umum bawaan, dapat langsung digunakan saat mendefinisikan field tabel data dengan menggunakan nama type yang sesuai untuk menentukan tipenya. Tipe field yang berbeda memiliki konfigurasi parameter yang berbeda, untuk detail lihat daftar di bawah.
Selain item konfigurasi tambahan yang dijelaskan di bawah, semua item konfigurasi tipe field akan diteruskan ke Sequelize, sehingga semua item konfigurasi field yang didukung Sequelize dapat digunakan di sini (seperti allowNull, defaultValue, dll).
Selain itu, tipe field di sisi server terutama mengatasi masalah penyimpanan database dan beberapa algoritma, pada dasarnya tidak terkait dengan tipe tampilan field di frontend dan komponen yang digunakan. Untuk tipe field frontend dapat dilihat pada penjelasan tutorial yang sesuai.
'boolean'
Tipe nilai logika.
Contoh
'integer'
Integer (32-bit).
Contoh
'bigInt'
Long integer (64-bit).
Contoh
'double'
Double precision floating point (64-bit).
Contoh
'real'
Tipe real number (hanya berlaku untuk PG).
'decimal'
Tipe decimal number.
'string'
Tipe string. Setara dengan tipe VARCHAR di sebagian besar database.
Contoh
'text'
Tipe text. Setara dengan tipe TEXT di sebagian besar database.
Contoh
'password'
Tipe password (ekstensi NocoBase). Berdasarkan method scrypt dari paket native crypto Node.js untuk enkripsi password.
Contoh
Parameter
'date'
Tipe tanggal.
'time'
Tipe waktu.
'array'
Tipe array (hanya berlaku untuk PG).
'json'
Tipe JSON.
'jsonb'
Tipe JSONB (hanya berlaku untuk PG, lainnya akan dikompatibilitas sebagai tipe 'json').
'uuid'
Tipe UUID.
'uid'
Tipe UID (ekstensi NocoBase). Tipe identifier string acak pendek.
'formula'
Tipe formula (ekstensi NocoBase). Dapat dikonfigurasi perhitungan rumus matematika berdasarkan mathjs, dalam rumus dapat mereferensikan nilai kolom lain dari record yang sama untuk berpartisipasi dalam perhitungan.
Contoh
'radio'
Tipe radio (ekstensi NocoBase). Maksimal satu baris data di seluruh tabel yang nilai field-nya true, lainnya semua false atau null.
Contoh
Seluruh sistem hanya memiliki satu user yang ditandai sebagai root, setelah nilai root user lain diubah menjadi true, semua record lain dengan root true akan diubah menjadi false:
'sort'
Tipe sort (ekstensi NocoBase). Sorting berdasarkan integer, otomatis menghasilkan nomor urut baru untuk record baru, melakukan reorder nomor saat memindahkan data.
Jika tabel data mendefinisikan opsi sortable, juga akan otomatis menghasilkan field yang sesuai.
Contoh
Artikel dapat di-sort berdasarkan user pemilik:
'virtual'
Tipe virtual. Tidak benar-benar menyimpan data, hanya digunakan saat definisi getter/setter khusus.
'belongsTo'
Tipe asosiasi many-to-one. Foreign key disimpan di tabel sendiri, berlawanan dengan hasOne/hasMany.
Contoh
Setiap artikel dimiliki oleh seorang author:
'hasOne'
Tipe asosiasi one-to-one. Foreign key disimpan di tabel asosiasi, berlawanan dengan belongsTo.
Contoh
Setiap user memiliki satu profile:
'hasMany'
Tipe asosiasi one-to-many. Foreign key disimpan di tabel asosiasi, berlawanan dengan belongsTo.
Contoh
Setiap user dapat memiliki banyak artikel:
'belongsToMany'
Tipe asosiasi many-to-many. Menggunakan tabel perantara untuk menyimpan foreign key dari kedua belah pihak, jika tidak menentukan tabel yang sudah ada sebagai tabel perantara, akan otomatis dibuat tabel perantara.
Contoh
Setiap artikel dapat memiliki banyak tag, dan setiap tag juga dapat ditambahkan ke banyak artikel:

