У меня есть вопрос проектирования кода, который давно искал меня, вы видите, что я делаю рефакторинг моего сайта Cosplay Denmark, сайт, на котором cospalyers могут загружать изображения из них в своих костюмах. Оригинальный сайт был сделан в PHP, Zend MVC, но мой рефакторинга делается в ASP.NET MVC 2.Лучшая практика, дизайн объектов ASP.NET MVC
Если вы берете на сайт http://www.cosplaydanmark.dk/Costumes/ (Вы можете переключиться на английский язык в левой колонке (Языки общения))
Здесь вы видите список всех аниме на сайте с изображениями, мы показываем имя, количество разных персонажей и количество изображений в этом аниме.
http://www.cosplaydanmark.dk/Costumes/Bleach
Если нажать на аниме вы получите список символов в данном аниме, которые мы имеем изображения в, здесь мы показываем имя персонажа, сколько галерей и сколько изображений.
http://www.cosplaydanmark.dk/Costumes/Bleach/Ichigo_Kurosaki/
Если щелкнуть по имени персонажа, вы получите список галерей по данному признаку в данном аниме. Здесь у нас есть информация о галерее, например, количество изображений.
http://www.cosplaydanmark.dk/Costumes/Bleach/Ichigo_Kurosaki/Admi/
Если вы нажмете на галерею вы получите список изображений в галерее.
Моя база данных выглядит так.
Database Design http://sogaard.us/uploades/dbdesign.jpg
Как вы можете себе представить, что есть много разных запросов, чтобы создать сайт, на первом месте, мне нужно сделать выбор на на столе «анимэ» и для каждого результата, Мне нужно сделать подсчет количества символов и галерей.
Мой план, чтобы создать это будет один из следующих
Objects plan http://sogaard.us/uploades/objectsetup.jpg
Где IList, будет ленивым список загрузки.
Но я не могу решить, что было бы лучшим решением для этого было бы, также если есть лучший способ сделать это. Мой приоритет - иметь хорошую производительность с минимальной потерей функций и содержания кода.
Я использую шаблон службы с репозиторией linq to sql.
Мой дизайн не является абсолютным, я готов изменить его, если это может привести к увеличению производительности: D
Я надеюсь, что у меня описать мой вопрос достаточно хорошо для вас, чтобы понять, что я имею в виду, но спрашивай, если есть что-то, что я пропустил.