Tham số cấu hình Collection
Mô tả tham số cấu hình Collection
name - Tên bảng dữ liệu
- Loại:
string - Bắt buộc: ✅
- Mô tả: Định danh duy nhất của bảng dữ liệu, phải duy nhất trong toàn ứng dụng
- Ví dụ:
title - Tiêu đề bảng dữ liệu
- Loại:
string - Bắt buộc: ❌
- Mô tả: Tiêu đề hiển thị của bảng dữ liệu, dùng để hiển thị trên giao diện front-end
- Ví dụ:
migrationRules - Quy tắc migration
- Loại:
MigrationRule[] - Bắt buộc: ❌
- Mô tả: Quy tắc xử lý khi migration dữ liệu
- Ví dụ:
inherits - Kế thừa bảng dữ liệu
- Loại:
string[] | string - Bắt buộc: ❌
- Mô tả: Kế thừa định nghĩa Field từ các bảng dữ liệu khác, hỗ trợ kế thừa từ một hoặc nhiều bảng
- Ví dụ:
filterTargetKey - Khóa target để filter
- Loại:
string | string[] - Bắt buộc: ❌
- Mô tả: Khóa target dùng để filter truy vấn, hỗ trợ một hoặc nhiều khóa
- Ví dụ:
fields - Định nghĩa Field
- Loại:
FieldOptions[] - Bắt buộc: ❌
- Giá trị mặc định:
[] - Mô tả: Mảng định nghĩa Field của bảng dữ liệu, mỗi Field bao gồm thông tin về kiểu, tên, cấu hình, v.v.
- Ví dụ:
model - Model tùy chỉnh
- Loại:
string | ModelStatic<Model> - Bắt buộc: ❌
- Mô tả: Chỉ định lớp Sequelize Model tùy chỉnh, có thể là tên lớp hoặc bản thân lớp Model
- Ví dụ:
repository - Repository tùy chỉnh
- Loại:
string | RepositoryType - Bắt buộc: ❌
- Mô tả: Chỉ định lớp Repository tùy chỉnh, dùng để xử lý logic truy cập dữ liệu
- Ví dụ:
autoGenId - Tự sinh ID
- Loại:
boolean - Bắt buộc: ❌
- Giá trị mặc định:
true - Mô tả: Có tự động sinh primary key ID hay không
- Ví dụ:
timestamps - Bật timestamp
- Loại:
boolean - Bắt buộc: ❌
- Giá trị mặc định:
true - Mô tả: Có bật Field thời gian tạo và thời gian cập nhật hay không
- Ví dụ:
createdAt - Field thời gian tạo
- Loại:
boolean | string - Bắt buộc: ❌
- Giá trị mặc định:
true - Mô tả: Cấu hình của Field thời gian tạo
- Ví dụ:
updatedAt - Field thời gian cập nhật
- Loại:
boolean | string - Bắt buộc: ❌
- Giá trị mặc định:
true - Mô tả: Cấu hình của Field thời gian cập nhật
- Ví dụ:
deletedAt - Field soft-delete
- Loại:
boolean | string - Bắt buộc: ❌
- Giá tr ị mặc định:
false - Mô tả: Cấu hình của Field soft-delete
- Ví dụ:
paranoid - Chế độ soft-delete
- Loại:
boolean - Bắt buộc: ❌
- Giá trị mặc định:
false - Mô tả: Có bật chế độ soft-delete hay không
- Ví dụ:
underscored - Đặt tên dấu gạch dưới
- Loại:
boolean - Bắt buộc: ❌
- Giá trị mặc định:
false - Mô tả: Có dùng phong cách đặt tên với dấu gạch dưới hay không
- Ví dụ:
indexes - Cấu hình index
- Loại:
ModelIndexesOptions[] - Bắt buộc: ❌
- Mô tả: Cấu hình index database
- Ví dụ:
Mô tả cấu hình tham số Field
NocoBase hỗ trợ nhiều kiểu Field, tất cả Field đều dựa trên union type FieldOptions để định nghĩa. Cấu hình Field bao gồm thuộc tính cơ bản, thuộc tính riêng theo kiểu dữ liệu, thuộc tính quan hệ và thuộc tính render front-end.
Tùy chọn Field cơ bản
Tất cả các kiểu Field đều kế thừa từ BaseFieldOptions, cung cấp năng lực cấu hình Field chung:
Ví dụ:
name - Tên Field
- Loại:
string - Bắt buộc: ❌
- Mô tả: Tên column của Field trong database, phải duy nhất trong collection
- Ví dụ:
hidden - Field ẩn
- Loại:
boolean - Giá trị mặc định:
false - Mô tả: Có mặc định ẩn Field này trong danh sách/form hay không
- Ví dụ:
validation - Quy tắc validation
- Loại:
ValidationOptions<T> - Mô tả: Dùng Joi để định nghĩa quy tắc validation phía server
- Ví dụ:
allowNull - Cho phép null
- Loại:
boolean - Giá trị mặc định:
true - Mô tả: Kiểm soát database có cho phép ghi giá trị
NULLhay không - Ví dụ:
defaultValue - Giá trị mặc định
- Loại:
any - Mô tả: Giá trị mặc định của Field, sẽ được dùng khi tạo record mà không cung cấp giá trị Field này
- Ví dụ:
unique - Ràng buộc duy nhất
- Loại:
boolean | string - Giá trị mặc định:
false - Mô tả: Có duy nhất hay không; chuỗi có thể chỉ định tên ràng buộc
- Ví dụ:
primaryKey - Primary key
- Loại:
boolean - Giá trị mặc định:
false - Mô tả: Khai báo Field này là primary key
- Ví dụ:
autoIncrement - Tự tăng
- Loại:
boolean - Giá trị mặc định:
false - Mô tả: Bật tự tăng (chỉ áp dụng cho Field kiểu số)
- Ví dụ:
field - Tên column trong database
- Loại:
string - Mô tả: Chỉ định tên column thực tế trong database (giống
fieldcủa Sequelize) - Ví dụ:
comment - Comment database
- Loại:
string - Mô tả: Ghi chú Field database, dùng để mô tả tài liệu
- Ví dụ:
title - Tiêu đề hiển thị
- Loại:
string - Mô tả: Tiêu đề hiển thị của Field, thường dùng để hiển thị trên giao diện front-end
- Ví dụ:
description - Mô tả Field
- Loại:
string - Mô tả: Thông tin mô tả Field, giúp người dùng hiểu công dụng Field
- Ví dụ:
interface - Component giao diện
- Loại:
string - Mô tả: Component giao diện Field front-end được khuyến nghị
- Ví dụ:
Interface kiểu Field
type: 'string' - Field chuỗi
- Mô tả: Dùng để lưu dữ liệu văn bản ngắn, hỗ trợ giới hạn độ dài và tự động trim
- Loại database:
VARCHAR - Thuộc tính riêng:
length: Giới hạn độ dài chuỗitrim: Có tự động xóa khoảng trắng đầu cuối hay không
Ví dụ:
type: 'text' - Field text
- Mô tả: Dùng để lưu dữ liệu văn bản dài, hỗ trợ các kiểu text độ dài khác nhau của MySQL
- Loại database:
TEXT,MEDIUMTEXT,LONGTEXT - Thuộc tính riêng:
length: Kiểu độ dài text MySQL (tiny/medium/long)
Ví dụ:
Kiểu số
type: 'integer' - Field số nguyên
- Mô tả: Dùng để lưu dữ liệu số nguyên, hỗ trợ tự tăng và primary key
- Loại database:
INTEGER
Ví dụ:
type: 'bigInt' - Field số nguyên lớn
- Mô tả: Dùng để lưu dữ liệu số nguyên lớn, phạm vi lớn hơn integer
- Loại database:
BIGINT
Ví dụ:
type: 'float' - Field số thực
- Mô tả: Dùng để lưu số thực độ chính xác đơn
- Loại database:
FLOAT - Thuộc tính riêng:
precision: Độ chính xác (tổng s ố chữ số)scale: Số chữ số thập phân
Ví dụ:
type: 'double' - Field số thực độ chính xác kép
- Mô tả: Dùng để lưu số thực độ chính xác kép, độ chính xác cao hơn float
- Loại database:
DOUBLE - Thuộc tính riêng:
precision: Độ chính xác (tổng số chữ số)scale: Số chữ số thập phân
Ví dụ:
type: 'real' - Field số thực
- Mô tả: Dùng để lưu số thực, phụ thuộc vào database
- Loại database:
REAL - Thuộc tính riêng:
precision: Độ chính xác (tổng số chữ số)scale: Số chữ số thập phân
Ví dụ:
type: 'decimal' - Field số thập phân chính xác
- Mô tả: Dùng để lưu số thập phân chính xác, phù hợp cho tính toán tài chính
- Loại database:
DECIMAL - Thuộc tính riêng:
precision: Độ chính xác (tổng số chữ số)scale: Số chữ số thập phân
Ví dụ:
Kiểu Boolean
type: 'boolean' - Field Boolean
- Mô tả: Dùng để lưu giá trị đúng/sai, thường dùng cho trạng thái bật/tắt
- Loại database:
BOOLEANhoặcTINYINT(1)
Ví dụ:
type: 'radio' - Field radio
- Mô tả: Dùng để lưu giá trị radio, thường dùng cho trường hợp chọn 1 trong 2
- Loại database:
BOOLEANhoặcTINYINT(1)
Ví dụ:
Kiểu ngày giờ
type: 'date' - Field ngày
- Mô tả: Dùng để lưu dữ liệu ngày, không bao gồm thông tin giờ
- Loại database:
DATE - Thuộc tính riêng:
timezone: Có bao gồm thông tin timezone hay không
Ví dụ:
type: 'time' - Field giờ
- Mô tả: Dùng để lưu dữ liệu giờ, không bao gồm thông tin ngày
- Loại database:
TIME - Thuộc tính riêng:
timezone: Có bao gồm thông tin timezone hay không
Ví dụ:
type: 'datetimeTz' - Field ngày giờ có timezone
- Mô tả: Dùng để lưu dữ liệu ngày giờ có timezone
- Loại database:
TIMESTAMP WITH TIME ZONE - Thuộc tính riêng:
timezone: Có bao gồm thông tin timezone hay không
Ví dụ:
type: 'datetimeNoTz' - Field ngày giờ không timezone
- Mô tả: Dùng để lưu dữ liệu ngày giờ không có timezone
- Loại database:
TIMESTAMPhoặcDATETIME - Thuộc tính riêng:
timezone: Có bao gồm thông tin timezone hay không
Ví dụ:
type: 'dateOnly' - Field chỉ ngày
- Mô tả: Dùng để lưu dữ liệu chỉ chứa ngày, không bao gồm giờ
- Loại database:
DATE - Ví dụ:
type: 'unixTimestamp' - Field Unix timestamp
- Mô tả: Dùng để lưu dữ liệu Unix timestamp
- Loại database:
BIGINT - Thuộc tính riêng:
epoch: Thời gian epoch
Ví dụ:
Kiểu JSON
type: 'json' - Field JSON
- Mô tả: Dùng để lưu dữ liệu định dạng JSON, hỗ trợ cấu trúc dữ liệu phức tạp
- Loại database:
JSONhoặcTEXT - Ví dụ:
type: 'jsonb' - Field JSONB
- Mô tả: Dùng để lưu dữ liệu định dạng JSONB (riêng PostgreSQL), hỗ trợ index và truy vấn
- Loại database:
JSONB(PostgreSQL) - Ví dụ:
Kiểu mảng
type: 'array' - Field mảng
- Mô tả: Dùng để lưu dữ liệu mảng, hỗ trợ nhiều kiểu phần tử
- Loại database:
JSONhoặcARRAY - Thuộc tính riêng:
dataType: Kiểu lưu trữ (json/array)elementType: Kiểu phần tử (STRING/INTEGER/BOOLEAN/JSON)
Ví dụ:
type: 'set' - Field set
- Mô tả: Dùng để lưu dữ liệu set, giống mảng nhưng có ràng buộc duy nhất
- Loại database:
JSONhoặcARRAY - Thuộc tính riêng:
dataType: Kiểu lưu trữ (json/array)elementType: Kiểu phần tử (STRING/INTEGER/BOOLEAN/JSON)
Ví dụ:
Kiểu định danh
type: 'uuid' - Field UUID
- Mô tả: Dùng để lưu định danh duy nhất định dạng UUID
- Loại database:
UUIDhoặcVARCHAR(36) - Thuộc tính riêng:
autoFill: Tự động fill
Ví dụ:
type: 'nanoid' - Field Nanoid
- Mô tả: Dùng để lưu định danh duy nhất ngắn định dạng Nanoid
- Loại database:
VARCHAR - Thuộc tính riêng:
size: Độ dài IDcustomAlphabet: Tập ký tự tùy chỉnhautoFill: Tự động fill
Ví dụ:
type: 'uid' - Field UID tùy chỉnh
- Mô tả: Dùng để lưu định danh duy nhất định dạng tùy chỉnh
- Loại database:
VARCHAR - Thuộc tính riêng:
prefix: Tiền tốpattern: Mẫu validation
Ví dụ:
type: 'snowflakeId' - Field Snowflake ID
- Mô tả: Dùng để lưu định danh duy nhất sinh bởi thuật toán Snowflake
- Loại database:
BIGINT - Ví dụ:
Field chức năng
type: 'password' - Field mật khẩu
- Mô tả: Dùng để lưu dữ liệu mật khẩu đã mã hóa
- Loại database:
VARCHAR - Thuộc tính riêng:
length: Độ dài hashrandomBytesSize: Kích thước byte ngẫu nhiên
Ví dụ:
type: 'encryption' - Field mã hóa
- Mô tả: Dùng để lưu dữ liệu nhạy cảm đã mã hóa
- Loại database:
VARCHAR - Ví dụ:
type: 'virtual' - Field ảo
- Mô tả: Dùng để lưu dữ liệu ảo được tính toán, không lưu trong database
- Loại database: Không (Field ảo)
- Ví dụ:
type: 'context' - Field Context
- Mô tả: Dùng để đọc dữ liệu từ ngữ cảnh runtime (như thông tin user hiện tại)
- Loại database: Xác định bởi dataType
- Thuộc tính riêng:
dataIndex: Đường dẫn index dữ liệudataType: Kiểu dữ liệucreateOnly: Chỉ set khi tạo
Ví dụ:
Field quan hệ
type: 'belongsTo' - Quan hệ thuộc về
- Mô tả: Biểu thị quan hệ nhiều-một, record hiện tại thuộc về một record khác
- Loại database: Field foreign key
- Thuộc tính riêng:
target: Tên bảng dữ liệu đíchforeignKey: Tên Field foreign keytargetKey: Tên Field key bảng đíchonDelete: Hành vi cascade khi xóaonUpdate: Hành vi cascade khi cập nhậtconstraints: Có bật ràng buộc foreign key hay không
Ví dụ:
type: 'hasOne' - Quan hệ sở hữu một
- Mô tả: Biểu thị quan hệ một-một, record hiện tại sở hữu một record liên quan
- Loại database: Field foreign key
- Thuộc tính riêng:
target: Tên bảng dữ liệu đíchforeignKey: Tên Field foreign keysourceKey: Tên Field key bảng nguồnonDelete: Hành vi cascade khi xóaonUpdate: Hành vi cascade khi cập nhậtconstraints: Có bật ràng buộc foreign key hay không
Ví dụ:
type: 'hasMany' - Quan hệ sở hữu nhiều
- Mô tả: Biểu thị quan hệ một-nhiều, record hiện tại sở hữu nhiều record liên quan
- Loại database: Field foreign key
- Thuộc tính riêng:
target: Tên bảng dữ liệu đíchforeignKey: Tên Field foreign keysourceKey: Tên Field key bảng nguồnsortBy: Field sắp xếpsortable: Có thể sắp xếp hay khôngonDelete: Hành vi cascade khi xóaonUpdate: Hành vi cascade khi cập nhậtconstraints: Có bật ràng buộc foreign key hay không
Ví dụ:
type: 'belongsToMany' - Quan hệ nhiều-nhiều
- Mô tả: Biểu thị quan hệ nhiều-nhiều, kết nối hai bảng dữ liệu thông qua bảng trung gian
- Loại database: Bảng trung gian
- Thuộc tính riêng:
target: Tên bảng dữ liệu đíchthrough: Tên bảng trung gianforeignKey: Tên Field foreign keyotherKey: Foreign key của đầu kia bảng trung giansourceKey: Tên Field key bảng nguồntargetKey: Tên Field key bảng đíchonDelete: Hành vi cascade khi xóaonUpdate: Hành vi cascade khi cập nhậtconstraints: Có bật ràng buộc foreign key hay không
Ví dụ:

