Qu'est-ce qu'un CRUD ?
CRUD est un acronyme anglais qui signifie Create, Read, Update and Delete.
En français, il est généralement traduit par Créer, Lire, Modifier et Supprimer.
C'est un basique du développement informatique qui décrit les opérations de base que nous pouvons réaliser sur une donnée.
Pourquoi parler de CRUD ?
Lors du développement d'un logiciel utilisant une base de données, vous devez mettre en place les fonctionnalités qui vous permettront d'interagir avec les lignes de votre base.
Ces fonctionnalités de base qui définissent le cycle de vie de vos données sont la création, la mise à jour et la suppression.
Pour les utilisateurs n'ayant pas de droit de modification, mais qui ont besoin d'accéder à cette donnée, il faut ajouter la visualisation.
Ce qui nous donne les actions du CRUD.
Existe-t-il plusieurs versions de CRUD ?
En effet, le CRUD regroupe les étapes basiques, mais tout logiciel sérieux nécessite un peu plus de richesse.
C'est pour cela que nous rajoutons généralement au CRUD deux actions supplémentaires :
- la recherche → Search
- l'archivage → Archive
De plus, nous pouvons également implémenter des actions en masse que l'on appelle "batch actions".
Comment mettre en place un CRUD ?
La recherche et visualisation
Dans la majorité des cas, nous commençons par la mise en place d'une liste qui permettra de lire les lignes de votre base de données.
Une bonne liste contient a minima les fonctionnalités suivantes :
une pagination
La pagination sert à limiter le nombre de lignes chargées sur la page ce qui permet d'avoir de bonnes performances.
des tris sur les colonnes
Pour chaque colonne de votre entité, vous devez implémenter des tris ascendant et descendant (ASC et DESC) pour classer
vos facilement vos lignes.
Cette fonctionnalité ne s'applique pas de base aux champs de type texte et aux tables liées.
des filtres
Pour pouvoir recherche des éléments dans votre base, vous devez ajouter des filtres sur les champs structurants.
Vous pouvez également ajouter un champ de recherche fulltext en faisant attention à maitriser les performances de cette recherche (ou utiliser un outil de recherche fulltext comme Algolia).
des boutons d'actions
Sur chaque ligne de vos listes, vous pouvez afficher des boutons (ou un bouton en dropdown) permettant d'accéder plus
simplement aux autres étapes de votre CRUD.
La création et l'édition
La création et la mise à jour d'une entité se fait grâce à un formulaire.
Suivant le contexte, les formulaires de création et d'édition peuvent être différents. Dans la majorité des cas, le questionnaire de création est plus succins et ne demande que les champs essentiels, puis une fois que les entités liées ont été générées, le formulaire d'édition est plus riche.
Ces deux actions doivent intégrer une validation des champs en amont de l'enregistrement en base pour assurer une parfaite intégrité des données.
La suppression
La suppression est une étape définitive qui nécessite une étape de confirmation d'action.
Suivant votre contexte et si votre entité est liée à d'autres, vous pourrez bloquer l'action de suppression en cas de liaison ou choisir des options moins contraignantes comme le set null ou le cascade delete
L'archivage
Dans le cas où vous souhaitez simplement faire disparaitre des lignes de vos écrans sans pour autant les supprimer de votre base, l'archivage est une alternative intéressante.
Cette action peut être mise en place à l'aide d'un booléen (archivé oui/non) ais nous vous conseillons plutôt d'utiliser une date ce qui vous donnera plus d'information.
L'archivage est notamment utilisé lorsque vous avez besoin de statistiques sur vos données.
Dans un contexte RGPD, il peut être intéressant d'intégrer une étape d'anonymisation dans votre action d'archivage.
Comment aller plus loin que le CRUD ?
Le CRUD sur une entité est une tâche réellement basique de programmation.
Mais dans un logiciel professionnel, notre modèle de données métier est composé de plusieurs entités (table de base de données) qui ont des relations.
Ainsi, vos écrans doivent gérer les relations entre vos tables ce qui complexifie la mise en place technique et ergonomique de vos écrans.
Et c'est là que le travaille d'un développeur professionnel devient intéressant !
Si vous souhaitez aller plus loin dans votre découverte de la programmation, rejoignez-nous chez SmartBooster pour apprendre à développer des logiciels professionnels en Symfony et VueJs.