使用Entity Framework,应该使用枚举还是实际表来存储类别?

3
我是使用Entity Framework Code First来构建我的数据库。我有一些分类数据,这些数据不经常发生变化,但未来可能会发生改变。在最佳实践方面,将分类数据存储在枚举中还是实际表格中更好呢?下面是我将如何实现这两种方法的示例:
使用枚举:
public enum Role
{
    Administrator, Employee, Developer
}

public class User
{
    public int ID {get;set;}
    public string Name { get; set; }
    public Role Role { get; set; }
}

使用单独的表格:

public class User
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int RoleID { get; set; } // Foreign key to Role table
    public virtual Role Role { get; set; } // Navigation property for Role
}

public class Role
{
    public int ID { get; set; }
    public string RoleName { get; set; }
}
2个回答

1
如果数据可以改变,请使用实际的表格 - 我见过改变的枚举,那不太好看。您将拥有像“第一次尝试”“第一次尝试第二个…”这样的代码 - 例如,请参见Microsoft办公室的Interop枚举;)

1
我的看法是采用第二种方法(使用单独的表),因为它支持关注点分离(数据与实现分离)。但是,如果您不打算添加更多角色,则使用枚举的第一种方法也可以。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接