2009-07-08 4 views
0

Je suis tombé sur ceci quelques fois dans ma carrière et n'ai jamais vraiment trouvé une réponse. Ma question concerne un formulaire Web qui contient plusieurs contrôles que l'utilisateur peut mettre à jour, puis enregistre les données dans une base de données (l'exemple le plus simple auquel je puisse penser est un formulaire de profil utilisateur - voir écran d'édition de profil SO).L'enregistrement de la valeur d'un contrôle dans la base de données est-il préférable à l'enregistrement de tous les contrôles?

Jusqu'ici, j'ai toujours sauvegardé la valeur de chaque contrôle dans la base de données. Pour moi, il semble plus facile d'avoir une méthode qui appelle une procédure stockée, en passant toutes les valeurs de formulaire de la page.

J'ai vu des pages qui semblent enregistrer la valeur du contrôle individuel, plutôt que l'ensemble des contrôles. Ca peut vraiment être joli (si la page le fait via AJAX), mais est-ce mieux? Je pense que vous auriez besoin de plus de frais généraux pour y arriver, comme un (ou plusieurs?) DTO, plus de méthodes, et plus de procédures stockées?

Quelle est la meilleure solution? Et y a-t-il des exemples de la façon dont le contrôle individuel est effectué?

Merci!

Répondre

0

Je recommande généralement d'utiliser la méthode de contrôle individuelle; il fournit beaucoup plus de granularité de conception.

0

Cela dépend de ce que vous entendez par mieux.

"une méthode, procédure stockée" - plus rapide à coder, plus facile à maintenir. "sauver la valeur du contrôle individuel" - plus optimisé? Je laisserais l'optimisation pour durer. Ça a l'air plus agréable? La convivialité est-elle réellement un problème sur cette page? YAGNI - ne corrige les performances/la facilité d'utilisation que si elles sont cassées.

0

Quelques réflexions

  • Il est un appel à la base de données, que ce soit 25 colonnes ou une seule colonne

  • (similaires) Si vous mettez à jour 6 contrôles dans une édition session, vous le faites dans un appelez plutôt que 6 séparés

  • Vous pouvez avoir des formulaires avec des contrôles dépendants ou liés ou des combinaisons de valeurs interdites: Le cas général serait des changements de "contrôle multiple" dans une seule session d'édition: donc codeL'idée générale de l'audit/timestamping est au niveau * row * unique, pas la colonne.

Questions connexes