C# 在MVC4项目中首先使用实体框架代码进行数据库设计(SQLCE)-几个问题
在我正在开发的应用程序中,向用户提供了许多他们应该个性化的偏好。以下描述了我认为应该如何实施: 优先选择:C# 在MVC4项目中首先使用实体框架代码进行数据库设计(SQLCE)-几个问题,c#,sql-server,asp.net-mvc,entity-framework,database-design,C#,Sql Server,Asp.net Mvc,Entity Framework,Database Design,在我正在开发的应用程序中,向用户提供了许多他们应该个性化的偏好。以下描述了我认为应该如何实施: 优先选择: public enum Weighting { One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten } public class PreferenceOption { public bool PreferenceOptionSelected { get; set; }
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; }
}
选择的优先选项很可能是一个布尔;如果选中,用户可以添加权重,如果未选中,则不能应用权重,但应用程序仍需要知道其值为false-这便于以后搜索
用于保存所有可用首选项的类:
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; }
}
用于保存用户选定/个人首选项的类:
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; }
}
公共类用户首选项
{
公共列表用户首选项{get;set;}
}
问题:
PreferenceOption
和PreferenceOptions
是否仅存在于内存中,并用于帮助获得用户首选项的最终“列表”。这是我无法理解的部分。如何最好地存储用户的首选项?这张桌子是什么样的首选项是面向应用层还是面向数据层?也就是说,您希望使用权重值作为数据库中某个查询的一部分,还是希望在应用程序代码中使用它来处理返回的结果?此外,每个用户的首选项数量是否相同,或者每个用户是否灵活?WantHouse的数量和含义是否固定,或者该部分是否是动态的?是的,权重将用作数据库中某些查询的一部分,例如,如果某个特定选项的权重为1,则数据库中的某些记录可能会被忽略,如果是10,一些记录肯定会被返回——如果这有意义的话?任何用户都将获得相同数量的选项,所有选项都是必需的-但如果用户不选择使用该选项,则仍应记录其值false,因为这可能/将影响搜索结果。@SWeko,PreferenceOption的实例数量很可能是固定的,但未来有可能增加另一种选择。它们的含义将始终代表实例名称,即WantHouse。这就是你的意思吗?还有问题吗?也许是一个意见/答案?