我對投票系統實現感到困惑。我想知道投票並投票減少郵報的數量,也可以保存投票的選民。我使用下面的模型。關於實現投票系統的模型關係
public class Post : Entity
{
public string Title { get; set; }
public virtual User Owner { get; set; }
public virtual List<User> UpVoters { get; set; }
public virtual List<User> DownVoters { get; set; }
}
我覺得有點問題在本設計中,因爲如果我有機會代表投票並否決後的數,所以我想我必須處理2 query.Using導航性能計數,如果會導致性能問題我只需要計數。我對嗎?
下面的第二個問題也讓我感到困惑,因爲VoteUpCount和VoteDownCount應該由開發人員隨時處理。當選民改變他的投票時總是重新更新值,這看起來有點代碼味道。
public class Post : Entity
{
public string Title { get; set; }
public virtual User Owner { get; set; }
public int VoteUpCount { get; set; }
public int VoteDownCount { get; set; }
public virtual List<User> UpVoters { get; set; }
public virtual List<User> DownVoters { get; set; }
}
您能否提供我哪些比較好?爲什麼更好?我有另一種選擇嗎?
Lastyly post hold 3用戶導航屬性,這讓我覺得有些東西可能是錯的。這種關係有什麼不妥?