У меня есть несколько объектов, которые я хочу, чтобы мои пользователи могли иметь возможность голосовать «за» или «против».(похоже на вопросы SO) Если бы это был только один тип объекта, я мог бы просто иметь отношение один ко многим, но у меня есть по крайней мере три типа объектов, которые требуют отслеживания голосования.
Я использую MVC3и EF CodeFirst.
Вот первый черновик
public class Deed
{
public int DeedId { get; set; }
[Required]
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<Vote> Votes { get; set; }
}
public class Vote
{
public int VoteId { get; set; }
public string UserId { get; set; }
public int Value { get; set; } // +1, -1
public ItemType VoteType { get; set; }
public int ItemId { get; set; }
}
public enum ItemType
{
DEED,
ACTIVITY,
IDEA
}
С какой проблемой я столкнусь с этим?Альтернативой может быть сохранение таблицы голосов полностью не связанной с другими объектами и использование хранилища для заполнения поля VoteTotal для объектов Deed, Activity и Idea.