2010-05-10 10 views
0

J'ai une question de conception de code qui me tourmente depuis un moment, vous voyez que je fais un refactoring de mon site Cosplay Denmark, un site où les cospalyers peuvent télécharger des images d'eux moi dans leurs costumes. Le site original a été fait en php, Zend MVC, mais mon refactoring est fait dans ASP.NET MVC 2.Bonne pratique, conception d'objets ASP.NET MVC

Si vous prenez le site http://www.cosplaydanmark.dk/Costumes/ (Vous pouvez passer à l'anglais dans la colonne de gauche (Sprog))

Ici vous voyez une liste de tous les animes que nous avons sur le site avec des images, nous montrons le nom, combien de caractères différents et combien d'images il y a sous cet anime.

http://www.cosplaydanmark.dk/Costumes/Bleach

Si vous cliquez sur un animus vous obtiendrez une liste de caractères dans l'anime donné que nous avons images, ici Montrons-nous le nom du personnage, combien de galeries et combien d'images.

http://www.cosplaydanmark.dk/Costumes/Bleach/Ichigo_Kurosaki/

Si vous cliquez sur le nom du personnage, vous obtiendrez une liste des galeries sous le caractère donné dans l'anime donné. Nous avons ici quelques informations sur la galerie, telles que le nombre d'images.

http://www.cosplaydanmark.dk/Costumes/Bleach/Ichigo_Kurosaki/Admi/

Si vous cliquez sur la galerie vous obtenez une liste des images dans la galerie.

Ma base de données ressemble à ceci pour le moment.

Database Design http://sogaard.us/uploades/dbdesign.jpg

Comme vous pouvez peut-être imaginer il y a de beaucoup de requête différente pour créer le site, sur le premier site que je dois faire une sélection sur la sur la table « animes » et pour chaque résultat, J'ai besoin de faire un compte sur les personnages et les galeries.

Mon plan pour créer ce sera l'un des suivants

Objects plan http://sogaard.us/uploades/objectsetup.jpg

Lorsque le IList, serait une liste de charge paresseux.

Mais je ne peux pas décider quelle serait la meilleure solution pour cela, même s'il y a une meilleure façon de le faire. Ma priorité est d'avoir de bonnes performances avec un minimum de perte de fonctionnalités et d'entretien du code. J'utilise un modèle de service avec un référentiel linq-sql.

Ma conception est pas absolue, je suis prêt à changer si elle pourrait augmenter les performances: D

J'espère que je décrire ma question assez bon pour vous de comprendre ce que je veux dire, mais demandez si loin il y a quelque chose que j'ai manqué.

Répondre

0

Personnellement, j'aime être en mesure de lier la et revenir à la

Afin que chacun et ont une propriété animeId qui est une clé étrangère retour à

Alors que je peux faire une simple requête getAllImagesByAnimeId