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