1

在我正在开发的应用程序中,向用户展示了一些他们应该个性化的偏好。以下描述了我认为应该如何实施:

偏好:

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; }
}

问题:

  1. 这种设计是处理这种情况的最佳方式吗?

  2. 我首先使用 EF 代码。这 3 个类是否需要作为实体保存在数据库中?或者,可以PreferenceOption并且PreferenceOptions仅存在于内存中,并用于促进获得UserPreferences. 这是我无法理解的部分。我将如何最好地存储用户的偏好?餐桌的妆容是什么?

  3. 列表是我对如何存储用户首选项的第一个想法,但我知道直接列表不能存储在一行中,但如果序列化为 XML 则可以。如果我使用 XML 方法在搜索之前反序列化效率低/导致性能开销,则用户的偏好将在以后促进搜索很重要。有没有更好的方法来解决我正在考虑的问题?

4

0 回答 0