在我正在开发的应用程序中,向用户展示了一些他们应该个性化的偏好。以下描述了我认为应该如何实施:
偏好:
public enum Weighting { One, Two, Three, Four, Five,
Six, Seven, Eight, Nine, Ten }
public class PreferenceOption
{
public bool PreferenceOptionSelected { get; set; }
public Weighting Weighting { get; set; }
}
PreferenceOptionSelected 很可能是一个布尔值;如果选中用户可以添加一个权重,如果没有选中则不能应用权重,但是应用程序仍然需要知道它的值是假的——这是为了方便以后搜索。
一个包含所有可用首选项的类:
public class PreferenceOptions
{
public PreferenceOption WantsHouse = new PreferenceOption()
{ PreferenceOptionSelected = false, Weighting = Weighting.One };
// ... could be up to 15/20 options
}
保存用户选择/个人偏好的类:
public class UserPreferences
{
public List<PreferenceOptions> UserPreferences { get; set; }
}
问题:
这种设计是处理这种情况的最佳方式吗?
我首先使用 EF 代码。这 3 个类是否需要作为实体保存在数据库中?或者,可以
PreferenceOption
并且PreferenceOptions
仅存在于内存中,并用于促进获得UserPreferences
. 这是我无法理解的部分。我将如何最好地存储用户的偏好?餐桌的妆容是什么?列表是我对如何存储用户首选项的第一个想法,但我知道直接列表不能存储在一行中,但如果序列化为 XML 则可以。如果我使用 XML 方法在搜索之前反序列化效率低/导致性能开销,则用户的偏好将在以后促进搜索很重要。有没有更好的方法来解决我正在考虑的问题?