Мне любопытно, как мне организовать хранение изображений в моем приложении.Они будут где-то храниться на диске, а путь / URL-адрес хранятся в базе данных, но мое приложение стало сложным, и организация изображений оставляет меня озадаченным.Я использую технологию ASP.NET MVC 3 + EF 4.1 Code First (которая оказывается сложной при сложных отношениях).
Это приложение на основе семейства, поэтому есть таблица Family, таблица Memberи таблицу FamilyMember для ссылки на два.Также есть таблица FamilyEvent и MemberEvent для отслеживания событий в жизни семьи или члена.
Варианты использования
Участник может загружать несколько изображений профиля (возможно, для добавления в альбом «профиля»?)
Участник может загружать«семейные» фотографии, которые необходимо прикрепить к объекту «Семейство» и поместить в альбом определенного типа для семьи.
Участник может добавить событие участника и прикрепить несколько изображений кСобытие members.
Участник может добавить семейное событие и прикрепить несколько изображений к семейному событию.
Это базовые варианты использования.
Мои мысли
Базовая таблица "Picture" с идентификатором, описанием и, возможно, идентификатором пользователя загрузчика.
Таблица MemberProfilePicture с идентификатором,pictureId, memberId и т. д. *
Таблица MemberEventPicture с идентификатором, pictureId, [идентификатор участника?], membereventid и т. д. *
Таблица FamilyEventPicture с идентификатором, pictureId, [familyId?], familyeventid и т. д. *
Это позволит семье или члену по существу "связать" фотографию позже с другим профилем / событием участника / или семейным событием.
Myвопрос
Это правильно, или я слишком усложняю это?Я не вижу другого способа, кроме нескольких таблиц, представлять изображения для разных вещей, которые все ссылаются на базовую таблицу изображений.Кто-нибудь может дать какие-либо предложения относительно того, как я могу улучшить эту модель?Хотя я понимаю, что может быть много определений, которые нужно исправить, я ищу решения, касающиеся того, как организовать аспект отображения моего приложения, или улучшения того, что у меня уже есть.