Paramètres de configuration des collections
name - Nom de la collection
- Type:
string - Obligatoire: ✅
- Description: L'identifiant unique de la collection, qui doit être unique dans toute l'application.
- Exemple:
title - Titre de la collection
- Type:
string - Obligatoire: ❌
- Description: Le titre d'affichage de la collection, utilisé pour l'interface utilisateur (frontend).
- Exemple:
migrationRules - Règles de migration
- Type:
MigrationRule[] - Obligatoire: ❌
- Description: Règles de traitement lors de la migration des données.
- Exemple:
inherits - Hériter des collections
- Type:
string[] | string - Obligatoire: ❌
- Description: Hérite des définitions de champs d'autres collections. Prend en charge l'héritage d'une ou de plusieurs collections.
- Exemple:
filterTargetKey - Clé cible de filtrage
- Type:
string | string[] - Obligatoire: ❌
- Description: La clé cible utilisée pour filtrer les requêtes. Prend en charge une ou plusieurs clés.
- Exemple:
fields - Définitions des champs
- Type:
FieldOptions[] - Obligatoire: ❌
- Valeur par défaut:
[] - Description: Un tableau de définitions de champs pour la collection. Chaque champ inclut des informations telles que le type, le nom et la configuration.
- Exemple:
model - Modèle personnalisé
- Type:
string | ModelStatic<Model> - Obligatoire: ❌
- Description: Spécifiez une classe de modèle Sequelize personnalisée, qui peut être soit le nom de la classe, soit la classe de modèle elle-même.
- Exemple:
repository - Dépôt personnalisé
- Type:
string | RepositoryType - Obligatoire: ❌
- Description: Spécifiez une classe de dépôt personnalisée pour gérer la logique d'accès aux données.
- Exemple:
autoGenId - Génération automatique d'ID
- Type:
boolean - Obligatoire: ❌
- Valeur par défaut:
true - Description: Indique si un ID de clé primaire doit être généré automatiquement.
- Exemple:
timestamps - Activer les horodatages
- Type:
boolean - Obligatoire: ❌
- Valeur par défaut:
true - Description: Indique si les champs
createdAtetupdatedAtdoivent être activés. - Exemple:
createdAt - Champ de date de création
- Type:
boolean | string - Obligatoire: ❌
- Valeur par défaut:
true - Description: Configuration pour le champ
createdAt. - Exemple:
updatedAt - Champ de date de mise à jour
- Type:
boolean | string - Obligatoire: ❌
- Valeur par défaut:
true - Description: Configuration pour le champ
updatedAt. - Exemple:
deletedAt - Champ de suppression logique
- Type:
boolean | string - Obligatoire: ❌
- Valeur par défaut:
false - Description: Configuration pour le champ de suppression logique.
- Exemple:
paranoid - Mode de suppression logique
- Type:
boolean - Obligatoire: ❌
- Valeur par défaut:
false - Description: Indique si le mode de suppression logique doit être activé.
- Exemple:
underscored - Nommage en snake_case
- Type:
boolean - Obligatoire: ❌
- Valeur par défaut:
false - Description: Indique si le style de nommage en snake_case doit être utilisé.
- Exemple:
indexes - Configuration des index
- Type:
ModelIndexesOptions[] - Obligatoire: ❌
- Description: Configuration des index de la base de données.
- Exemple:
Configuration des paramètres de champ
NocoBase prend en charge plusieurs types de champs, tous définis à partir du type union FieldOptions. La configuration des champs inclut des propriétés de base, des propriétés spécifiques au type de données, des propriétés de relation et des propriétés de rendu frontend.
Options de champ de base
Tous les types de champs héritent de BaseFieldOptions, offrant des capacités de configuration de champ communes :
Exemple:
name - Nom du champ
- Type:
string - Obligatoire: ❌
- Description: Le nom de la colonne du champ dans la base de données, qui doit être unique au sein de la collection.
- Exemple:
hidden - Champ masqué
- Type:
boolean - Valeur par défaut:
false - Description: Indique si ce champ doit être masqué par défaut dans les listes et les formulaires.
- Exemple:
validation - Règles de validation
- Type:
ValidationOptions<T> - Description: Utilise Joi pour définir les règles de validation côté serveur.
- Exemple:
allowNull - Autoriser les valeurs nulles
- Type:
boolean - Valeur par défaut:
true - Description: Contrôle si la base de données autorise l'écriture de valeurs
NULL. - Exemple:
defaultValue - Valeur par défaut
- Type:
any - Description: La valeur par défaut du champ, utilisée lorsqu'un enregistrement est créé sans fournir de valeur pour ce champ.
- Exemple:
unique - Contrainte d'unicité
- Type:
boolean | string - Valeur par défaut:
false - Description: Indique si la valeur doit être unique. Une chaîne de caractères peut être utilisée pour spécifier le nom de la contrainte.
- Exemple:
primaryKey - Clé primaire
- Type:
boolean - Valeur par défaut:
false - Description: Déclare ce champ comme clé primaire.
- Exemple:
autoIncrement - Auto-incrémentation
- Type:
boolean - Valeur par défaut:
false - Description: Active l'auto-incrémentation (s'applique uniquement aux champs numériques).
- Exemple:
field - Nom de la colonne de base de données
- Type:
string - Description: Spécifie le nom réel de la colonne de la base de données (cohérent avec le
fieldde Sequelize). - Exemple:
comment - Commentaire de la base de données
- Type:
string - Description: Un commentaire pour le champ de la base de données, utilisé à des fins de documentation.
- Exemple:
title - Titre d'affichage
- Type:
string - Description: Le titre d'affichage du champ, couramment utilisé dans l'interface frontend.
- Exemple:
description - Description du champ
- Type:
string - Description: Informations descriptives sur le champ pour aider les utilisateurs à comprendre son objectif.
- Exemple:
interface - Composant d'interface
- Type:
string - Description: Le composant d'interface frontend recommandé pour le champ.
- Exemple:
Interfaces des types de champs
type: 'string' - Champ de type chaîne de caractères
- Description: Utilisé pour stocker des données textuelles courtes. Prend en charge les limites de longueur et le rognage automatique.
- Type de base de données:
VARCHAR - Propriétés spécifiques:
length: Limite de longueur de la chaîne de caractèrestrim: Indique s'il faut supprimer automatiquement les espaces de début et de fin
Exemple:
type: 'text' - Champ de type texte
- Description: Utilisé pour stocker des données textuelles longues. Prend en charge différents types de texte dans MySQL.
- Type de base de données:
TEXT,MEDIUMTEXT,LONGTEXT - Propriétés spécifiques:
length: Type de longueur de texte MySQL (tiny/medium/long)
Exemple:
Types numériques
type: 'integer' - Champ de type entier
- Description: Utilisé pour stocker des données entières. Prend en charge l'auto-incrémentation et la clé primaire.
- Type de base de données:
INTEGER
Exemple:
type: 'bigInt' - Champ de type grand entier
- Description: Utilisé pour stocker des données de grands entiers, avec une plage plus grande que
integer. - Type de base de données:
BIGINT
Exemple:
type: 'float' - Champ de type flottant
- Description: Utilisé pour stocker des nombres à virgule flottante en simple précision.
- Type de base de données:
FLOAT - Propriétés spécifiques:
precision: Précision (nombre total de chiffres)scale: Échelle (nombre de décimales)
Exemple:
type: 'double' - Champ de type flottant double précision
- Description: Utilisé pour stocker des nombres à virgule flottante en double précision, qui ont une précision plus élevée que
float. - Type de base de données:
DOUBLE - Propriétés spécifiques:
precision: Précision (nombre total de chiffres)scale: Échelle (nombre de décimales)
Exemple:
type: 'real' - Champ de type réel
- Description: Utilisé pour stocker des nombres réels ; dépend de la base de données.
- Type de base de données:
REAL - Propriétés spécifiques:
precision: Précision (nombre total de chiffres)scale: Échelle (nombre de décimales)
Exemple:
type: 'decimal' - Champ de type décimal
- Description: Utilisé pour stocker des nombres décimaux exacts, adaptés aux calculs financiers.
- Type de base de données:
DECIMAL - Propriétés spécifiques:
precision: Précision (nombre total de chiffres)scale: Échelle (nombre de décimales)
Exemple:
Types booléens
type: 'boolean' - Champ de type booléen
- Description: Utilisé pour stocker des valeurs vrai/faux, généralement pour des états activé/désactivé.
- Type de base de données:
BOOLEANouTINYINT(1)
Exemple:
type: 'radio' - Champ de type radio
- Description: Utilisé pour stocker une seule valeur sélectionnée, généralement pour des choix binaires.
- Type de base de données:
BOOLEANouTINYINT(1)
Exemple:
Types de date et d'heure
type: 'date' - Champ de type date
- Description: Utilisé pour stocker des données de date sans information d'heure.
- Type de base de données:
DATE - Propriétés spécifiques:
timezone: Indique s'il faut inclure les informations de fuseau horaire
Exemple:
type: 'time' - Champ de type heure
- Description: Utilisé pour stocker des données d'heure sans information de date.
- Type de base de données:
TIME - Propriétés spécifiques:
timezone: Indique s'il faut inclure les informations de fuseau horaire
Exemple:
type: 'datetimeTz' - Champ de date et heure avec fuseau horaire
- Description: Utilisé pour stocker des données de date et d'heure avec des informations de fuseau horaire.
- Type de base de données:
TIMESTAMP WITH TIME ZONE - Propriétés spécifiques:
timezone: Indique s'il faut inclure les informations de fuseau horaire
Exemple:
type: 'datetimeNoTz' - Champ de date et heure sans fuseau horaire
- Description: Utilisé pour stocker des données de date et d'heure sans informations de fuseau horaire.
- Type de base de données:
TIMESTAMPouDATETIME - Propriétés spécifiques:
timezone: Indique s'il faut inclure les informations de fuseau horaire
Exemple:
type: 'dateOnly' - Champ de date seule
- Description: Utilisé pour stocker des données contenant uniquement la date, sans l'heure.
- Type de base de données:
DATE - Exemple:
type: 'unixTimestamp' - Champ d'horodatage Unix
- Description: Utilisé pour stocker des données d'horodatage Unix.
- Type de base de données:
BIGINT - Propriétés spécifiques:
epoch: L'heure de l'époque (epoch)
Exemple:
Types JSON
type: 'json' - Champ de type JSON
- Description: Utilisé pour stocker des données au format JSON, prenant en charge des structures de données complexes.
- Type de base de données:
JSONouTEXT - Exemple:
type: 'jsonb' - Champ de type JSONB
- Description: Utilisé pour stocker des données au format JSONB (spécifique à PostgreSQL), qui prend en charge l'indexation et les requêtes.
- Type de base de données:
JSONB(PostgreSQL) - Exemple:
Types de tableau
type: 'array' - Champ de type tableau
- Description: Utilisé pour stocker des données de tableau, prenant en charge divers types d'éléments.
- Type de base de données:
JSONouARRAY - Propriétés spécifiques:
dataType: Type de stockage (json/array)elementType: Type d'élément (STRING/INTEGER/BOOLEAN/JSON)
Exemple:
type: 'set' - Champ de type ensemble
- Description: Utilisé pour stocker des données d'ensemble, similaires à un tableau mais avec une contrainte d'unicité.
- Type de base de données:
JSONouARRAY - Propriétés spécifiques:
dataType: Type de stockage (json/array)elementType: Type d'élément (STRING/INTEGER/BOOLEAN/JSON)
Exemple:
Types d'identifiants
type: 'uuid' - Champ de type UUID
- Description: Utilisé pour stocker des identifiants uniques au format UUID.
- Type de base de données:
UUIDouVARCHAR(36) - Propriétés spécifiques:
autoFill: Remplit automatiquement la valeur
Exemple:
type: 'nanoid' - Champ de type Nanoid
- Description: Utilisé pour stocker de courts identifiants uniques au format Nanoid.
- Type de base de données:
VARCHAR - Propriétés spécifiques:
size: Longueur de l'IDcustomAlphabet: Jeu de caractères personnaliséautoFill: Remplit automatiquement la valeur
Exemple:
type: 'uid' - Champ UID personnalisé
- Description: Utilisé pour stocker des identifiants uniques dans un format personnalisé.
- Type de base de données:
VARCHAR - Propriétés spécifiques:
prefix: Préfixepattern: Modèle de validation
Exemple:
type: 'snowflakeId' - Champ d'ID Snowflake
- Description: Utilisé pour stocker des identifiants uniques générés par l'algorithme Snowflake.
- Type de base de données:
BIGINT - Exemple:
Champs fonctionnels
type: 'password' - Champ de type mot de passe
- Description: Utilisé pour stocker des données de mot de passe chiffrées.
- Type de base de données:
VARCHAR - Propriétés spécifiques:
length: Longueur du hachagerandomBytesSize: Taille des octets aléatoires
Exemple:
type: 'encryption' - Champ de chiffrement
- Description: Utilisé pour stocker des données sensibles chiffrées.
- Type de base de données:
VARCHAR - Exemple:
type: 'virtual' - Champ virtuel
- Description: Utilisé pour stocker des données virtuelles calculées qui ne sont pas stockées dans la base de données.
- Type de base de données: Aucun (champ virtuel)
- Exemple:
type: 'context' - Champ de contexte
- Description: Utilisé pour lire des données du contexte d'exécution (par exemple, les informations de l'utilisateur actuel).
- Type de base de données: Déterminé par
dataType - Propriétés spécifiques:
dataIndex: Chemin d'index des donnéesdataType: Type de donnéescreateOnly: Défini uniquement à la création
Exemple:
Champs de relation
type: 'belongsTo' - Relation belongsTo (appartient à)
- Description: Représente une relation de type plusieurs-à-un, où l'enregistrement actuel appartient à un autre enregistrement.
- Type de base de données: Champ de clé étrangère
- Propriétés spécifiques:
target: Nom de la collection cibleforeignKey: Nom du champ de clé étrangèretargetKey: Nom du champ de clé cible dans la collection cibleonDelete: Action en cascade lors de la suppressiononUpdate: Action en cascade lors de la mise à jourconstraints: Indique s'il faut activer les contraintes de clé étrangère
Exemple:
type: 'hasOne' - Relation hasOne (a un)
- Description: Représente une relation de type un-à-un, où l'enregistrement actuel a un enregistrement lié.
- Type de base de données: Champ de clé étrangère
- Propriétés spécifiques:
target: Nom de la collection cibleforeignKey: Nom du champ de clé étrangèresourceKey: Nom du champ de clé source dans la collection sourceonDelete: Action en cascade lors de la suppressiononUpdate: Action en cascade lors de la mise à jourconstraints: Indique s'il faut activer les contraintes de clé étrangère
Exemple:
type: 'hasMany' - Relation hasMany (a plusieurs)
- Description: Représente une relation de type un-à-plusieurs, où l'enregistrement actuel a plusieurs enregistrements liés.
- Type de base de données: Champ de clé étrangère
- Propriétés spécifiques:
target: Nom de la collection cibleforeignKey: Nom du champ de clé étrangèresourceKey: Nom du champ de clé source dans la collection sourcesortBy: Champ de trisortable: Indique si le champ est triableonDelete: Action en cascade lors de la suppressiononUpdate: Action en cascade lors de la mise à jourconstraints: Indique s'il faut activer les contraintes de clé étrangère
Exemple:
type: 'belongsToMany' - Relation belongsToMany (appartient à plusieurs)
- Description: Représente une relation de type plusieurs-à-plusieurs, connectant deux collections via une table de jonction.
- Type de base de données: Table de jonction
- Propriétés spécifiques:
target: Nom de la collection ciblethrough: Nom de la table de jonctionforeignKey: Nom du champ de clé étrangèreotherKey: L'autre clé étrangère dans la table de jonctionsourceKey: Nom du champ de clé source dans la collection sourcetargetKey: Nom du champ de clé cible dans la collection cibleonDelete: Action en cascade lors de la suppressiononUpdate: Action en cascade lors de la mise à jourconstraints: Indique s'il faut activer les contraintes de clé étrangère
Exemple:

