S'appuyer sur le programme pour garantir l'unicité n'est pas fiable, car dans des situations de forte concurrence, les deux étapes suivantes se chevaucheront, entraînant des insertions répétées :
Vérifiez s'il existe déjà un enregistrement dans la base de données
Lors de l'établissement d'une contrainte d'unicité, le système crée généralement automatiquement un index pour garantir l'unicité tout en augmentant les performances des requêtes. (Documentation PostgreSQL)
L'ajout d'une contrainte unique créera automatiquement un B-tree index unique sur la colonne ou le groupe de colonnes répertorié dans la contrainte.
L'auteur doit comprendre quel est le but de la base de données. Le système de base de données est développé à partir du système de fichiers. Si vous suivez la deuxième option, vous pouvez le stocker directement sous forme de fichier. La base de données n'est pas qu'un simple SQL. En tant que SGBD, elle fournit également de nombreuses autres fonctions, vous permettant de vous concentrer sur la résolution des problèmes d'application tout en optimisant l'accès sous-jacent au système.
S'appuyer sur le programme pour garantir l'unicité n'est pas fiable, car dans des situations de forte concurrence, les deux étapes suivantes se chevaucheront, entraînant des insertions répétées :
Vérifiez s'il existe déjà un enregistrement dans la base de données
Sinon, insérez l'enregistrement
Il vaut mieux choisir la contrainte unique :
Simplifiez la logique de l'application.
Lors de l'établissement d'une contrainte d'unicité, le système crée généralement automatiquement un index pour garantir l'unicité tout en augmentant les performances des requêtes. (Documentation PostgreSQL)
L'auteur doit comprendre quel est le but de la base de données. Le système de base de données est développé à partir du système de fichiers. Si vous suivez la deuxième option, vous pouvez le stocker directement sous forme de fichier. La base de données n'est pas qu'un simple SQL. En tant que SGBD, elle fournit également de nombreuses autres fonctions, vous permettant de vous concentrer sur la résolution des problèmes d'application tout en optimisant l'accès sous-jacent au système.