La conception d'une base de données pour des applications est rarement complète sans la création de relations entre les tables. L'éditeur de base de données AppMaster vous permet de créer une telle relation en un seul geste. Il suffit de tracer une ligne de liaison entre les tables, puis de sélectionner le type de relation (un à un, un à plusieurs, plusieurs à plusieurs) et, si nécessaire, le nom des champs. Mais que faire si la table doit se référer à elle-même ?

Analysons la situation dans laquelle il est nécessaire de tenir un certain registre d'enregistrements. En même temps, il est organisé de telle manière que les enregistrements sont créés strictement en chaîne. Chaque entrée doit être liée à l'entrée précédente et à l'entrée suivante (à l'exception de la toute première et de la dernière entrée, bien sûr). Ainsi, l'ensemble de la chaîne peut être suivi pour chaque enregistrement individuel, et le système bénéficie d'une protection supplémentaire contre les modifications non autorisées.

Conception de la base de données

Tout d'abord, nous devons créer le modèle lui-même dans le concepteur de base de données. Nous allons le nommer Journal et ajoutons un champ de texte, record.

L'étape suivante consiste à créer une connexion. Pour ce faire, cliquez avec le bouton droit de la souris n'importe où dans le canevas et sélectionnez Create relation.

L'étape suivante consiste à configurer la connexion. Pour ce faire, vous devez sélectionner le même modèle que Source et Target (dans ce cas, Journal), définir les noms des champs (next et previous) et le type de connexion (has_one).

La configuration de la table autoréférentielle est terminée. Vous pouvez commencer à créer le design frontal et les processus métier.

Création d'un processus métier

Créons un processus métier backend pour ajouter de nouvelles entrées dans le journal. Il recevra le texte de la nouvelle entrée comme paramètre d'entrée. Il recherchera dans la base de données la dernière entrée pour l'associer à la nouvelle entrée. Pour la recherche, vous pouvez définir _Limit = 1 (car un seul dernier enregistrement est nécessaire), ce qui sera suffisant puisque, par défaut, les enregistrements seront classés par ID et émis dans l'ordre où ils ont été ajoutés à la base de données, en commençant par le dernier enregistrement.

Le résultat de la recherche sera un tableau composé d'un seul élément. Nous devons l'extraire à l'aide du bloc Array Element avec index 0 et former une nouvelle entrée de journal (Make Journal). La dernière étape consiste simplement à écrire dans la base de données (DB: Create Journal) et de terminer le processus métier.

Ce processus de gestion peut être utilisé comme point de terminaison par défaut pour créer de nouveaux enregistrements dans la base de données.

Conception du front-end

Pour le front-end d'une application web, il suffit d'ajouter trois éléments à la page.

  1. Champ de texte pour saisir le contenu de la nouvelle entrée
  2. Bouton pour ajouter une entrée
  3. Tableau pour afficher toutes les entrées.

Pour le bouton "ADD Journal Record", vous devez également créer un processus commercial simple. En cliquant sur le bouton, le texte du champ de saisie doit être envoyé au point de terminaison pour créer de nouveaux enregistrements, et un autre bouton doit être cliqué pour mettre à jour le contenu du tableau comme dernière action.

Pour la table elle-même, il est également intéressant de mettre en place des processus métier, mais dans cette leçon, nous ne nous y attarderons pas. Toutes les informations nécessaires se trouvent dans la leçon sur la configuration des tableaux. Il est seulement utile de noter que lors de l'obtention de données, vous devez spécifier le paramètre _with le paramètre pour obtenir les données des tables liées (malgré le fait que, dans notre cas, la table est liée à elle-même).

Nous pouvons publier l'application, ajouter quelques entrées et vérifier que tout fonctionne correctement. Chaque entrée est réellement liée aux entrées de la même table. Par exemple, pour une entrée avec l'ID 3, il y a un lien vers l'entrée précédente (ID 2) et l'entrée suivante (ID 4).

Was this article helpful?

AppMaster.io 101 Cours accéléré

10 Modules
2 Semaines

Vous ne savez pas par où commencer ? Lancez-vous avec notre cours accéléré pour débutants et explorez AppMaster de A à Z.

Début du cours
Development it’s so easy with AppMaster!

Besoin d'aide?

Résolvez n'importe quel problème avec l'aide de nos experts. Gagnez du temps et concentrez-vous sur la création de vos applications.

headphones

Contactez le support

Parlez-nous de votre problème et nous vous trouverons une solution.

message

Chat communautaire

Discutez de questions avec d'autres utilisateurs dans notre chat.

Rejoindre la Communauté