Connexion à une vue de base de données
Data source: MainCommunity Edition+Présentation
Connectez des vues présentes dans la base de données, par exemple une vue de rapports financiers maintenue par le DBA, une vue de clients filtrée ou une vue agrégée issue d'une synchronisation entre plusieurs systèmes. Cette fonctionnalité permet de réutiliser la logique de requête déjà définie dans la base de données.
Les vues ordinaires appartenant au périmètre du propriétaire du compte de connexion à la base de données principale sont prises en charge, mais pas les vues matérialisées. Même si ce compte dispose d'un droit de lecture sur les vues d'autres propriétaires, celles-ci n'apparaîtront pas dans la liste des vues pouvant être connectées. Avant la connexion, vérifiez que les champs de la vue possèdent des noms de colonnes stables et que leurs types peuvent être identifiés par NocoBase.
Connexion à une vue de base de données
- Dans le menu des sources de données des fonctionnalités système, accédez à la page d'accueil des sources de données.
- Sélectionnez la source de données Main dans la liste, cliquez sur l'action « Configure » pour accéder à la base de données principale.
- Dès la gestion de la base de données principale, cliquez sur « Create collection », puis sélectionnez « Connect to database view »

Source collections est la table de données source déduite à partir de la vue de base de données. Elle sert à identifier les tables de données existantes dont proviennent principalement les champs de la view et à limiter les choix disponibles de Field source lors de la correspondance des champs.
Le résultat de cette déduction sert à accélérer la configuration. Si la view contient des renommages de champs, des calculs, des agrégations ou des join complexes, le résultat peut être partiellement incorrect ou impossible à déduire. Il faudra alors effectuer une vérification manuelle dans Fields.
Correspondance des champs
La correspondance des champs est une configuration qui doit être confirmée après la connexion à une vue de base de données. Après la connexion de la view, NocoBase déduit d'abord la source et le type de base de données de chaque champ de la vue : lorsque le champ source peut être déduit, le Field type, le Field interface et le Field display name du champ existant sont automatiquement repris ; dans le cas contraire, un Field type initial est proposé en fonction du type de champ de la base de données, et le type de champ ainsi que la configuration de l'interface doivent être confirmés manuellement. En savoir plus sur la configuration des champs

Par exemple, si la vue renvoie customer_name et que celui-ci provient du champ « Nom du client » de la table des clients, vous pouvez l'associer au champ correspondant de cette table. NocoBase pourra ainsi réutiliser le titre, le type et la configuration d'interface du champ d'origine.
Si le champ de la vue provient d'un résultat agrégé ou calculé, par exemple count(*) as total ou sum(amount) as amount_total, il faut généralement sélectionner manuellement le Field type et un Field interface approprié.
Field source provient de la déduction effectuée par NocoBase sur la vue de base de données et indique à quel champ existant un champ de la vue pourrait correspondre. Lorsqu'un champ possède Field source, NocoBase réutilise en priorité le Field type et le Field interface du champ source.
Si le champ source ne peut pas être déduit ou si le résultat ne correspond pas à la signification métier, supprimez Field source, puis sélectionnez manuellement Field type ainsi que Field interface et Field display name.
Identifiant unique de l'enregistrement
Une vue de base de données doit être configurée avec un Record unique key ; sinon, il sera impossible de créer des blocs dans les pages et de consulter ou de modifier correctement les enregistrements. Vous pouvez sélectionner un seul champ ou une combinaison de plusieurs champs comme identifiant unique. Les champs adaptés comme Record unique key remplissent généralement les conditions suivantes :
- La valeur du champ est unique
- La valeur du champ est stable et ne change pas en fonction du tri, de la pagination ou de la méthode de calcul
- Le champ n'est pas vide
- Le champ est toujours renvoyé par la view
Si la view provient d'une requête sur une seule table, il est préférable de renvoyer la clé primaire de la table d'origine. Si la view provient d'un join entre plusieurs tables ou d'une agrégation, vous pouvez conserver dans la vue de base de données un ID métier stable ou faire générer par la base de données un champ unique stable.
Autoriser les opérations d'ajout, de mise à jour et de suppression
Si la database view prend en charge les écritures, vous pouvez activer « Allow add new, update and delete actions ». NocoBase autorisera alors l'ajout, la mise à jour et la suppression d'enregistrements dans cette vue depuis les pages.
Les vues de base de données sont davantage destinées à être utilisées comme résultats de requêtes et sont traitées en lecture seule par défaut. Il est recommandé d'activer cette option uniquement après avoir confirmé que la database view prend en charge les opérations d'écriture correspondantes et que les autorisations de la base de données permettent également ces écritures.
Aperçu des résultats de la vue
Avant l'envoi, utilisez Preview pour consulter les résultats de la requête de la vue. Lors de l'aperçu, vérifiez en particulier :
- que la view peut être interrogée correctement
- que tous les champs sont présents
- que les types de champs et d'interfaces correspondent à leur signification métier
- que le Record unique key existe et que les données sont uniques
- si les types de champs non pris en charge doivent être ajustés côté base de données

Configurer les champs
Après la création de la vue de base de données, cliquez sur « Configure fields » à droite de la vue dans la liste des tables de données pour accéder à la page de configuration des champs. Cette configuration sert à gérer les champs présents dans la vue, leur affichage dans l'interface et la correspondance entre les champs de la database view et le Field type et le Field interface de NocoBase.
Les champs ordinaires d'une vue de base de données proviennent de la database view. NocoBase ne crée, ne modifie et ne supprime pas directement de colonnes réelles dans la view. Dans la page de configuration des champs, seuls les champs de relation plusieurs-à-un peuvent être ajoutés afin de compléter les relations métier dans NocoBase. Une vue de base de données ne peut pas être utilisée comme table de données cible d'un champ de relation ; il n'est généralement pas nécessaire de configurer un champ titre.
En savoir plus sur la configuration des champs

Ajouter un champ de relation
Une vue de base de données permet uniquement d'ajouter des champs de relation plusieurs-à-un. Ceux-ci peuvent associer des champs existants de la view à la clé primaire ou à un champ unique de la table de données cible. Ils servent à afficher les enregistrements associés dans les pages, mais ne créent ni champ réel ni contrainte de clé étrangère dans la database view.
Cliquez sur « Add field » pour ajouter un champ de relation plusieurs-à-un.
En savoir plus sur la configuration des champs

Correspondance des champs
Après la connexion de la vue de base de données, NocoBase déduit le Field type à partir des champs de la view et de leurs champs sources, puis lui associe un Field interface par défaut. Si la source du champ, son mode d'affichage ou sa signification métier ne correspondent pas aux attentes, vous pouvez ajuster la correspondance dans la configuration du champ.
En savoir plus sur la configuration des champs

- Field interface (type d'interface / type d'UI) : détermine la manière dont le champ est affiché et utilisé dans l'interface. Il peut s'agir, par exemple, d'un « texte sur une ligne », d'un « nombre », d'un « menu déroulant » ou d'une « date et heure ». Il correspond à la classification du champ du point de vue de l'utilisateur.
- Field type (type de données) : détermine la manière dont NocoBase identifie le type de données du champ. Pour les champs de view sans champ source, le type est généralement déduit du type de champ de la base de données, par exemple
string,integer,decimal,boolean,datetime, etc.
Modifier le Field source, le Field type ou le Field interface ne revient pas à modifier le type de champ de la database view. Ces paramètres influencent principalement le mode d'affichage dans les pages, les règles de validation et la manière dont NocoBase identifie le champ.
Synchroniser depuis la base de données
Si la structure des champs de la view est modifiée côté base de données, accédez à « Configure fields », puis cliquez sur « Sync from database » pour relire la structure des champs. Après la synchronisation, NocoBase met à jour les champs : il ajoute les nouveaux champs apparus dans la view, supprime ceux qui ont été supprimés de la view et reconfirme les types et les sources des champs.

Lors de la synchronisation, le renommage d'un champ se traduit généralement par la « suppression de l'ancien champ + l'ajout du nouveau champ ». Avant la synchronisation, vérifiez si l'ancien champ est utilisé par des pages, des autorisations, des workflows ou des API externes, afin d'éviter une perte de configuration. Après la synchronisation, vérifiez également le Field type et le Field interface.
Modifier un champ
Cliquez sur « Edit » à droite d'un champ pour modifier sa configuration. La modification d'un champ permet d'ajuster son affichage et son utilisation dans NocoBase, par exemple en modifiant son nom d'affichage, sa description, ses règles de validation ou sa configuration spécifique. En savoir plus sur la configuration des champs

La modification de la configuration d'un champ ne change ni le nom réel de la colonne, ni le type de champ, ni l'expression SQL, ni l'index dans la database view. Si vous devez modifier la structure réelle de la view, commencez par la modifier côté base de données, puis utilisez « Sync from database » pour la synchroniser.
Supprimer un champ
Cliquez sur « Delete » à droite d'un champ pour le supprimer. Cette action supprime uniquement le champ enregistré dans NocoBase et ne supprime pas la colonne réelle de la database view.
En savoir plus sur la configuration des champs

La suppression d'un champ peut affecter les blocs de page, les conditions de filtrage, le tri, les autorisations, les workflows, les API et les configurations existantes. Avant de le supprimer, vérifiez qu'il n'est plus utilisé. Si la database view renvoie toujours cette colonne, NocoBase pourra de nouveau détecter ce champ lors d'une prochaine exécution de « Sync from database ».
Modifier une vue
La définition SQL d'une vue de base de données est gérée côté base de données. Dans la liste des tables de données, cliquez sur « Edit » à droite d'une vue de base de données pour modifier ses métadonnées et sa configuration d'exécution dans NocoBase ; cette action ne modifie pas la view dans la base de données. Si vous devez connecter une autre database view, il est recommandé de créer une nouvelle table de données de vue de base de données.

Après avoir modifié le Record unique key ou Allow add new, update and delete actions, vérifiez à nouveau que les blocs de page, les autorisations et les workflows correspondent toujours aux attentes.
Supprimer une vue
Dans la liste des tables de données, cliquez sur « Delete » à droite d'une vue de base de données pour supprimer la table de données correspondante. Cette action supprime uniquement la configuration de connexion et les champs dans NocoBase ; elle ne supprime pas la view dans la base de données.
Les vues de base de données de la base de données principale peuvent également être sélectionnées en lot, puis supprimées en une seule fois. Avant la suppression, vérifiez que les blocs de page, les graphiques, les autorisations, les workflows et les API externes n'utilisent plus cette table de données de vue de base de données.


