irulan |
Mara's dad a écrit a écrit :
Pour finir, je ne supporte pas les applis qui proposent à l'utilisateur de supprimer un enregistrement, te demande de confirmer et qui ensuite te disent que c'est pas possible parceque la base a refusée !
Puisque l'appli est obligée de traiter le cas, autant le faire proprement AVANT, non ?
|
Ton exemple n'est pas vraiment bien choisi : ce cas ne doit pas apparaître !! Normalement, tu conçois l'architecture de ta BDD AVANT de commencer ton appli. Et là tu es forcé au cours du dev de tenir compte des contraintes mises en place.
Dans le cas où tu développes une appli qui doit accéder à une BDD déjà existante, je suis désolé mais il vaudra mieux pour le développeur que des contraintes existent : au moins pendant le dev et les tests, les problèmes apparaîtront tout de suite, et pas après 3 mois de mise en prod où là on s'apercevra que des enregistrements font référence à des codes qui sont supprimés, ou sont présents en double.
Une BDD ce n'est pas seulement un espace de stockage, c'est également tout un ensemble de règles et de contraintes qui régissent l'organisation des données, et sont les garantes de l'intégrité de ta base ( ce qui est le plus important, parce que sinon une fois que ta base est vérolée, tu peux t'accrocher pour la remettre à jour).
Dans un ensemble BDD + appli, la référence, c'est la BDD, et l'appli doit se plier à ce qui existe dans la base en terme de contraintes, sinon tu es à la merci d'un bug ou d'une incohérence de ton appli...
Pour reprendre ton exemple, la qestion à se poser n'est pas 'Ne vaut-il pas mieux supprimer les contraintes BDD', mais 'Pourquoi cela peut-il se produire ?'. En effet si une contrainte a été mise en place, c'est pour une raison précise (il peut arriver que des contraintes soient mal définies, mais de là à dire qu'il faut ramener tous les contrôles au niveau applicatif, il y a une grande différence !!) [edtdd]--Message édité par irulan--[/edtdd] |