2009-09-08 6 views
0

Je dois construire une simple page de visualisation d'un modèle supposons que personne, où je présente un ensemble de critères à l'utilisateur de choisir (en fonction de l'état des modèles persistés) par exemple j'ai une liste déroulante pour les départements montrant tous les départements distincts pour lesquels les dossiers de personnes sont disponibles et une fois que les ministères sont choisis, je souhaite présenter aux utilisateurs la liste de toutes les désignations distinctes (comme gestionnaire, superviseur .. etc. ce groupe, quand toutes les valeurs de critères sont sélectionnées et que le bouton d'affichage est enfoncé, c'est quand je veux vraiment montrer les données. J'utilise GWT donc j'ai un mvc implémenté du côté client lui-même avec une classe de vue et soutenu par une classe de modèle. La classe de modèle dans ce cas est une classe agrégée simple de classe Person, qui doit contenir une collection de classe Person. Supposons que la classe Person est lourde (elle contient un champ CLOB) donc ce modèle d'agrégat doit être chargé sur des scènes comme d'abord je veux afficher toutes les valeurs de critères disponibles pour l'utilisateur et enfin en fonction de sa sélection de l'ensemble de les critères qui agiront comme clé je veux réellement aller au serveur pour aller chercher les données et finalement les afficher. Mon approche typique est que dans mon modèle il doit y avoir des collections pour représenter les champs de critères individuels qui doivent être rendus à l'utilisateur comme département, désignation et enfin une autre collection pour l'ensemble entièrement initialisé des modèles Person, mais le problème est , voit que les données (données de critères) sont dupliquées à plusieurs endroits, à la fois dans les modèles de classe Person et dans le champ de collection de critères de la classe agrégée. Existe-t-il un modèle de meilleure pratique/conception pour résoudre ce type de problème? Ou quelle sera la bonne solution à ce problème.meilleure façon de concevoir un modèle agrégé qui peut être paresseux

Merci d'avance.

Répondre

0

Les données que vous décrivez comme critères peuvent exister en tant qu'entités de base de données à part entière. En fait, ce serait un système étrange dans lequel il n'y aurait pas d'informations supplémentaires attachées au Département, et un cas similaire pourrait être fait pour Job (Désignation). Mais vous pouvez quand même créer ces tables, ne serait-ce que pour fournir des clés étrangères pour les contraintes d'intégrité des données.

Avec une telle approche, vous pouvez remplir les listes déroulantes Critères à partir des différentes tables allégées, et ne toucher à la personne qu'une fois que l'utilisateur a choisi ses filtres et émis la sélection.

+0

Merci pour cette réponse, c'était un exemple de scénario mais dans un scénario réel où les champs de critères ne sont pas des tables par eux-mêmes mais sont des champs dans la table Person alors comment aborder le problème? – redzedi

Questions connexes