Bonjour;
Je travaille en architecture 3 tiers, et dans mes tables j'ai des champs qui doivent être unique, je voudrais savoir dans quelle couche je dois vérifier cette unicité.
si vous me donner d'autres conseils, c'est encore mieux.
Merci beaucoup.








Bonjour;
Je travaille en architecture 3 tiers, et dans mes tables j'ai des champs qui doivent être unique, je voudrais savoir dans quelle couche je dois vérifier cette unicité.
si vous me donner d'autres conseils, c'est encore mieux.
Merci beaucoup.
Ca dépend.
* Si toutes ta table est chargée dans ta couche interface (pas de pagination), tu peux faire une validation client pour éviter un A/R serveur, mais il te restera un cas d'erreur (deux utilisateurs différents)
* Si toutes ta table est chargées dans ta couche métier, tu peux vérifier au niveau métier, si tes données sont en static (elles seront communes à tous les utilisateurs)
* Sinon, le mieux à mon avis, en faisant proprement ta requête/store proc d'insertion, tu lui fais remonter un code d'erreur si on tente d'insérer un doublon.
Sinon, la méthode crado utilisée dans 95% des cas, mais qui diminue les perfs de ton serveur, ça consiste à faire l'insertion et à gérer l'exception remontée par ton SGBD.
Un autre conseil ?
Brosse toi les dents tous les soirs avant d'aller te coucher![]()
Le DataSet Typé permet de gérer cette contrainte avant d'accéder au server SQL et dans ce cas, selon l'utilisation que tu fais de ton DataSet se sera soit dans la couche métier soit dans la couche d'accès aux données![]()
On parle bien d'un application web ?Envoyé par stephane.net
Scénario à la con :
=> on veut assurer l'unicité sur un nom de login dans une page de gestion des utilisateurs.
T0 - L'utilisateur A se connecte et charge la page des utilisateurs.
T1 - L'utilisateur B se connecte et charge la page des utilisateurs.
T2 - L'utilisateur A entre le login "Robert", il valide, ça l'insère en base.
T3 - L'utilisateur B (qui n'a pas rechargé la page des utilisateurs) entre le login "Robert" et valide.
Comment ton DataSet il peut savoir que "Robert" n'existe pas en base sans se connecter ?
Désolé de casser ta réponse précédente, mais soit j'ai pas compris, soit tu t'es mal exprimé (c'est un peu pareil), soit tu as dit une connerie![]()
Partager